gpt4 book ai didi

c++ - 字符串与结构元素比较

转载 作者:太空宇宙 更新时间:2023-11-04 05:38:14 27 4
gpt4 key购买 nike

我在 .c 文件中有一段这样的代码,它检测 tPerson.name 是否等于 const char* names[COUNT] 的元素之一:

define COUNT 3
...
typedef struct {
int age;
char *name;
} tPerson;

const char* names[COUNT] = {
"xxx", "yyy", "zzz"
};
....
char string[128];
strcpy(string, tPerson.name);//tPerson.name is already initizialed
int counter = 0;
while (counter != COUNT) {
if (strcmp(names[counter], string) == 0) {
counter++;
return 0;
}
}
...

包含所有需要的库。编译器没有检测到任何错误或警告,但程序没有按预期工作 - 它在执行后什么也不做。这段代码只是庞大程序的一部分,所以我想知道,这个构造是否正确,程序中的其他地方是否有错误。谢谢

最佳答案

如果没有匹配,您想继续循环。将语句 counter++; 放在 if 语句之外:

while (counter != COUNT) {
if (strcmp(names[counter], string) == 0) {
return 0;
}
counter++;
}

并使用 size_t 作为 counter 而不是 int:size_t counter = 0;

关于c++ - 字符串与结构元素比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26959799/

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