此问题在此处已有答案:
How do I properly compare strings in C?(10个答案)
十小时前关门了。
输出表达式不正确
代码:
#include <stdio.h>
#include <string.h>
int main() {
char a[40],b[40];
printf("character input: "); fgets(a, sizeof(a), stdin);
strcpy(b, a);
strrev(a);
printf("%s\n", a);
printf("%s", b);
if (b == a) printf("palindrome");
else printf("not palindrome");
}
字符输入:
seles
输出:
seles
seles
not palindrome
3条答案
按热度按时间z9smfwbn1#
函数
fgets
可以将对应于按下的Enter键的新行字符'\n'
附加到输入的字符串,前提是目标字符数组具有存储它的空间。你得把它去掉比如说
在反转钻柱之前。
在此if语句中
有两个指针指向字符串的第一个字符,而不是字符串本身。相反,您需要使用标准的C函数
strcmp
j2cgzkjk2#
我想你可以这样使用:
x33g5p2x3#
strrev
不是标准的c函数。它并非在所有编译器上都可用1.您必须遍历匹配单个字符的整个字符串,或者使用strcmp检查两个字符串是否相同。
1.使用
fgets
,您还可以读取换行符。此换行符需要过滤掉a[strcspn(a, "\n")] = 0
代码: