gpt4 book ai didi

c - 枚举字符串比较

转载 作者:太空狗 更新时间:2023-10-30 03:51:39 26 4
gpt4 key购买 nike

我需要将一个枚举作为一个整体与一个字符串进行比较,因此要检查枚举的全部内容。

想要这样的东西:

NSString *colString = [[NSString aloc] initWithString:@"threeSilver"];


typedef enum {
oneGreen,
twoBlue,
threeSilver
}numbersAndColours;

if (colString == numbersAndColours) {
//Do cool stuff
}

但显然我不能那样做,也许是一个结构...抱歉,我是 C 的新手,请帮忙?

顺便说一句:我知道 NSString 不是 C,但我认为这个问题更像是 C,而不是 Obj-C。

谢谢

最佳答案

在 C 中,您必须为此编写一个函数。它本质上是一个 switch 语句。

char* colour_of(enum numbersAndColours c)
{
switch( c ) {
case oneGreen:
return "oneGreen";
break;
case twoBlue:
return "twoBlue";
break;
/* ... */
default:
return "donno";
}
}

你可以像这样使用这个函数:

{
char* nac;
nac = colour_of(numbersAndColours);
if( strncmp(colString, nac, colStringLen) == 0 )
/* ... */
}

如果 colString 不匹配任何枚举元素,它将不匹配 numbersAndColours。无需将其与所有元素进行比较。

关于c - 枚举字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2082856/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com