Convertir de cadena a Enum en C

¿Existe una forma conveniente de tomar una cadena (entrada por usuario) y convertirla en un valor de enumeración? En este caso, la cadena sería el nombre del valor de enumeración, así:

enum Day
{
    Sunday = 0,
    Monday = 1,
    ...
}

De modo que si el usuario le dio el nombre de un día, podría analizarlo al valor de Enum correspondiente.

El truco es que tengo más de 500 valores con los que estoy trabajando, y están distribuidos en múltiples enumeraciones.

Conozco el Método Enum.Parse en c #, ¿hay alguna forma de esto en c?

Respuestas a la pregunta(6)

Su respuesta a la pregunta