gpt4 book ai didi

c - strcmp返回值不正确?

转载 作者:行者123 更新时间:2023-11-30 17:16:53 30 4
gpt4 key购买 nike

这让我发疯,我在测试程序中以类似的方式做了几次测试,只是在主要功能中,一切都按预期工作,但是当我在编写的测验程序中比较这些答案时,我总是收到即使字符串看起来相等,返回值也为 -1!

void TraverseList(LinkedList *inList)
{
int compareTest;
char userAnswer[64];
char string1[64];
char string2[64];

for (inList->curr = inList-> head; inList->curr != NULL; inList->curr = inList->curr->next)
{
printf("%s", inList->curr->stringQuestion);
scanf("%s", userAnswer);

strcpy(string1, userAnswer);
strcpy(string2, inList->curr->stringAnswer);

compareTest = strcmp(string1, string2);

printf("%s\n", string1);
printf("%s\n", string2);
printf("Return value of strcmp: %d\n", compareTest);


if(compareTest == 0)
{
printf("Correct!\n");
}
else
{
printf("Incorrect!\n");
}
}
printf("\n");
}

现在的示例输出:

How many hours are in a day? 24
24 // this is string1
24 // this is string2

Return value of strcmp: -1
Incorrect!

最佳答案

当您担心使用字符串时无法获得正确的结果时,最好在变量的打印输出周围放置一些识别标记。

printf("X%sX\n", variable);

这将向您展示计算机真正测试的内容。

此外,如果您发现这对您不起作用,您可以尝试打印字符串中的各个字符及其 ascii 值,以防存在像“\a”这样的隐藏字符。

for(x=0; x<strlen(string_variable); x++)
printf("'%c' = %d\n", string_variable[x], string_variable[x]);

关于c - strcmp返回值不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29528869/

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