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);
}
...

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос