题目描述
读入一串字符,判断是否是回文串。“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。
输入
一行字符串,长度不超过255。
输出
如果是回文串,输出“YES”,否则输出“NO”。
样例输入
12321
样例输出
YES
总结
1.C语言中使用EOF代表-1;
2.gets()函数的返回值为字符数组的首地址,能够读取空格,以回车作为字符串结束的标志,多点测试中使用while(gets(str)!=NULL)进行循环。
3.scanf()函数以空格或者回车作为字符串结束标志;多点测试中使用while(scanf("%s",str)!=EOF)进行循环
4.使用scanf("%s",str)读取字符串"abc cba"结果会出现两个NO,但是使用gets()则是一个YES;
AC代码
#include <stdio.h>
#include <string.h>
#include <math.h>
void Judge(char str[])
{
int len=strlen(str);
int i=0,j=len-1;
while(i<j)
{
if(str[i]!=str[j])
{
printf("NO");
return;
}
i++,j--;
}
printf("YES");
}
int main()
{
char str[260];
while(scanf("%s",str)!=EOF)//这里使用while(gets(str)也能AC
{
Judge(str);
}
}