C: сопоставить строку с ENUM [дубликат]
Возможный дубликат:
Простой способ использовать переменные типов перечисления в виде строки в C?
Есть ли какой-нибудь элегантный способ преобразования пользовательской строки ввода в значение ENUM, прямой C, кроме ручного способа.
Упрощенный пример вызова функции, которая принимает ENUM в качестве аргумента:
enum = {MONDAY,TUESDAY,WEDNESDAY};
...
//Get user to enter a day of the week from command line
...
//Set the work day according to user input
if (strcmp(user_input,"MONDAY")==0){
SET_WORK_DAY(MONDAY);
} else if (strcmp(user_input,"TUESDAY")==0){
SET_WORK_DAY(TUESDAY);
}
...
Спасибо