提示:先求出字符串的长度len,然后通过循环判断字符串的对称位置的字符 是否相等,只要有一个不等,则结束判断,可以判定为非回文。如果全部相等, 则为回文。可以定义两个变量 i 和 j,分别指向字符串的开始和末尾,然后没判 断一次,移动一次(i++,j--)。
#include <stdio.h>
#include <string.h>
int palindrome(const char *s)
{
int len = strlen(s);
const char *p = s + len - 1;
while (s < p) {
if (*s != *p)
return 0;
s++;
p--;
}
return 1;
}
int main()
{
char s[100];
scanf("%s", s);
printf("%d", palindrome(s));
return 0;
}