Преобразование в строку

Перечисления

enum Season {
    Summer, Fall, Winter, Spring
};

//C keeps no member names at run time: an array of strings by value;
//[Winter] = puts each name at the index of its member
const char *seasonNames[] = {
    [Summer] = "Summer",
    [Fall] = "Fall",
    [Winter] = "Winter",
    [Spring] = "Spring"
};

enum Season winter = Winter;
const char *str = seasonNames[winter];
//str is "Winter"

//the number as text
char number[8];
snprintf(number, sizeof number, "%d", winter);
//number is "2"

printf("str is %s\n", str);
printf("number is %s\n", number);