我找到了一个不错的example如何使用 strcmp,但它只能与 fgets() 一起使用,并且我需要使其与 scanf 一起使用。所以,这是代码:
int main(void) {
char fruit[] = "apple\n";
char ans[80];
do {
printf ("Guess my favorite fruit? ");
scanf ("%s",ans);
} while (strcmp (fruit, ans) != 0);
puts ("Correct answer!");
return 0;
}
即使我写了正确的答案(“苹果”),它仍然在循环中并不断询问我最喜欢的水果是什么......我猜它与未在 ans[80] 处写入的字符有关(我需要它是一个最多 80 个字符的字符数组)。我不明白这个...
提前致谢。
Scanf 会忽略“\n”,所以你应该初始化char fruit[] = "apple"
,因为并且永远不会以“\n”结尾。
P.S:对 scanf 的解释:任意数量的非空白字符,在找到的第一个空白字符处停止。终止空字符会自动添加到存储序列的末尾。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)