【发布时间】:2014-10-30 10:19:36
【问题描述】:
在 C 中,如果两个字符串相等,strcmp() 函数将返回 0。 当我给出这样的代码时,
char str[10] = "hello";
if(strcmp(str,strrev(str))==0)
{
printf("1");
}
else
printf("0");
如果它是回文字符串,则应打印 1,如果不是回文字符串,则应打印 0。 但即使给定字符串“hello”不是回文,它也会打印 1。哪里错了?
【问题讨论】:
-
阅读有关您尝试首先使用的功能的文档。 strrev 似乎恢复了给定的字符串,而不是创建新的字符串。故事结束。
-
与其得出结论“strcmp() 在与不相等的字符串比较时返回 0”,不如考虑
strcmp()已经存在 40 多年并且工作正常。问“为什么字符串str和strrev(str)相等?
标签: c string palindrome strcmp