c语⾔如何判断⼀个字符串是⼀种枚举类型,C语⾔的枚举类型
(enumeration)
枚举(enumeration)是⼀系列命名的整形常量。枚举的例⼦有,⼀个星期⾥每⼀天的名称,钱币的币值等。如美国硬币币值的枚举定义:
enum coin{penny,nickel,dime,quarter,half-dollar,dollar};
以下代码声明money为枚举类型coin的变量:
enum coin money;
//使⽤枚举类型变量
enum c++
money=dime;
if(money == quarter)
printf("Money is a quarter.\n");
理解枚举的要点是,每个符号都代表⼀个整数值。这样,诸符号都可以⽤于使⽤整值的任何场合(⽐如switch语句中)。每个符号都取⼤于其前导者的⼀个值,第⼀个符号的值是0。
注意:枚举中的dollar,quarter等符号只是⼀个整数值的名字,不是字符串。试图将money作为字符串输出是⽆效的。
所以实际上,输⼊/输出枚举符号的程序是相当繁琐的。以下代码演⽰了⽤⽂字形式显⽰枚举变量money中放置的硬币种类:
switch(money) {
case penny: printf("penny");
break;
case nickel: printf("nickel");
break;
case dime: printf("dime");
break;
case quarter: printf("quarter");
break;
case half_dollar: printf("half_dollar");
break;
case dollar: printf("dollar");
}
把枚举值翻译成可读字符串只能靠编码实现,因此它们在不产⽣这种转换的例程中最为有⽤。