gpt4 book ai didi

c - 使用 keyfromString 函数切换字符串的大小写

转载 作者:行者123 更新时间:2023-11-30 19:31:04 26 4
gpt4 key购买 nike

我使用此代码对字符串使用 switch case

#define BADKEY -1
#define b 1
#define s 2
#define r 3
#define p 4

typedef struct { char *key; int val; } t_symstruct;

static t_symstruct lookuptable[] = {
{"b",b},{"s",s},{"r",r,{"p",p}
};

#define NKEYS (sizeof(lookuptable)/sizeof(t_symstruct))

int main () {

这里有什么错误?

 int keyfromstring(char *key)
{
int i;
for (i=0; i < NKEYS; i++) {
if (strcmp(lookuptable[i].key, key) == 0)
return lookuptable[i].val;
}
return BADKEY;
}

在 c 中切换大小写

switch (keyfromstring(field1))
{
case b :
printf(" is b\n" );
break;

case s :
printf("is s\n" );
break;

case r :
printf(" is r\n" );
break;

case ps:
printf("is p\n" );
break;

case BADKEY:
printf("Case: BADKEY \n");
break;

default://case if nothing
printf("Case: nothing happen\n");
}

**我收到此消息错误段错误(核心已转储)正确打印一些行后,请问这里的错误是什么?

最佳答案

在传递给函数之前检查 field1,这可能存在一些问题。我在这里没有看到任何错误。另外你没有明确提到它何时会崩溃

如果在打印 switch case 结束时出现错误段错误(核心转储)。您可能会在最后得到 null检查 feild1 是否为 null 。

关于c - 使用 keyfromString 函数切换字符串的大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49574414/

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