C语言中以字符串形式输出枚举变量

您所在的位置:网站首页 字符串枚举支持数字枚举吗 C语言中以字符串形式输出枚举变量

C语言中以字符串形式输出枚举变量

2023-08-21 18:03| 来源: 网络整理| 查看: 265

每个枚举常量对应一个整形数字,很多时候可以像整形一样使用.但枚举类型也有不方便的地方.比如不能直接输出枚举类型的字符串常量.举例说明.定义了枚举类型:

typedef enum { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } t_Week;

在程序中定义了变量t_Week vl_Week=SUNDAY; 如果想用printf("The Week is %s".,vl_Week);之类的语句直接输出The Week is SUNDAY. 是做不到的,无论采用%s或%d,或者在vl_Week前加强制类型转换. 有以下几个方法可以实现. 1.使用switch-case进行装换

char * StringDirectionT(t_Week vp_Week) { switch(vp_Week) { case SUNDAY : return "SUNDAY"; case MONDAY : return "MONDAY"; case TUESDAY : return "TUESDAY"; case WEDNESDAY : return "WEDNESDAY"; case THURSDAY : return "THURSDAY"; case FRIDAY : return "FRIDAY"; case SATURDAY : return "SATURDAY"; default : printf("Illegal direction value!\n; } }

然后用语句printf("The Week is %s \n",StringDirectionT(vl_Week)); 2.使用数组

char *a_Week[] = { "SUNDAY", "MONDAY", "TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","FRIDAY","SATURDAY"};

然后直接根据vl_Week的值去对应的数组元素

3.使用宏定义

#define enumToStr(WEEEK) "\""#WEEK"\""

printf("The Week is %s",enumToStr(vl_Week));



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3