7-19 sdut-C语言实验-回文串的判断
分数 18
全屏浏览题目
切换布局
作者 马新娟
单位 山东理工大学
输入一个字符串,判断该字符串是否为回文,只考虑数字和字母字符,字母的大小写没有区别。
回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。输入格式:
输入一串字符(长度小于100)。
输出格式:
若该串字符是回文串输出“yes",否则输出“no”。
输入样例:
level
输出样例:
yes
#include<stdio.h>
#include<string.h>
int main()
{
int i=0,f=1,k=0;
int l1=0,l2=0;
char str1[110],str2[110];
gets(str1);
l1=strlen(str1);
for(int j=0;j<l1;j++)
{
if(str1[j]>='a'&&str1[j]<='z') //"字母的大小写没有区别"
str1[j]-=32;
if((str1[j]>='A'&&str1[j]<='Z')||(str1[j]>=0&&str1[j]<=9))
{
str2[k]=str1[j];
k++; //由于"只考虑数字和字母字符"
} //让str2只存储str1中的数字和字母
}
l2=strlen(str2);
for(i=0;i<l2/2;i++)
{
if(str2[i]!=str2[l2-1-i])
{
f=0;break;
}
} //判断是否为回文序列
if(f==0)
printf("no");
else
printf("yes");
return 0;
}
k没有用上。是因为本想借此求str2长度的,但是下一秒一个反手一个strlen。。。又忘记删了。