#include
int main()
{
int i;
char a[100];
char *p, *q;
for (i = 0; (i<100) && ((a[i] = getchar()) != '\n'); i++);
p = &a[0];
q = &a[i - 1];
while (p {
if (*p == *q)
{
p++;
q--;
}
else
{
printf("not huiwen!");
break;
}
}
if (p >= q)printf("huiwen!");
getchar();
return 0;
}
用两个指针分别指向这个字符串的头和尾,然后判断指针指向的值如果相等就向中间移动直到头指针达到或超过尾指针(结论是回文),在上面的过程中如果跳出循环就说明头尾的值不相等(结论不是回文)