下列程序先消除输入字符串的前后空格,再判断是否是“回文”(即字符串正读和倒读都是一样),若是则输出YES,否则输出NO。
#include <stdio.h>
#include <string.h>
int main(void){
char s[80],ch,*p,*q;
int i,j,n;
gets(s);
p=s;
while( *p == ' ') //p移动到串首空格后一个位置
p++;
n=strlen(s);
q=s+n-1;
while ( *q == ' ') //q移动到末尾空格前一个位置
q--;
while (p<q&&*p ==*q){ //判断回文
p++;
q--;
}
if ( p<q )
printf("NO\n");
else
printf("YES\n");
return 0;
}