题目描述
“回文串”是一个正读和反读都一样的字符串,字符串由数字和小写字母组成,比如“level”或者“abcdcba”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。
输入
输入包含多个测试实例,每一行对应一个字符串,串长最多100字母。
输出
对每个字符串,输出它是第几个,如第一个输出为"case1: ";如果一个字符串是回文串,则输出"yes",否则输出"no",在yes/no之前用一个空格。
样例输入
level abcde noon haha
样例输出
case1: yes case2: no case3: yes case4: no
提示
请使用scanf进行输入。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char str[103];
int len1,k=0,i,j,flag=0;
memset(str,0,sizeof(char)*103);
while((scanf("%s",str))!=EOF)
{
k++;
getchar();
len1=strlen(str);
for(i=0,j=len1-1;i<len1/2&&j>0;i++,j--)
{
if(str[i]!=str[j])
{
printf("case%d: no\n",k);
flag=1;
break;
}
}
if(flag==0)
printf("case%d: yes\n",k);
memset(str,0,sizeof(char)*103);//初始化数组以免在下次的输入发生错乱
flag=0;
}
return 0;
}