从键盘读入一个字符串,判断其是否为回文.(C语言)

2024-11-29 11:20:39
推荐回答(2个)
回答1:

#include
#include
main()
{
char a[40]; //定义一个存放待判断的字符数组
int i=0,len;
printf("please input your string :(length<40):");
gets(a); //逐个读取a 数组中的字符
len=strlen(a); //计算字符串的长度
for(i=0;i<(len-1)/2;i++)
{
if(a[i]!=a[len-1-i])//逐个将两端的字符进行比较 如第一个与最后一个比较 第二个与倒数第二个比较 如不同 则跳出循环
break;
}
if(i==(len-1)/2)// 如i已经自加至字符串的中间位置 则表示是回文 如 没有 则不是
printf("Yes");
else
printf("No");
}

这程序 我粗略写的 没有运行 你运行试一下
有问题的话 你发邮件给我
neverland07@sina.com

回答2:

#include
#include
int main(int argc,char** argv){
char ch[100],i=0,j=0,len;
printf("请输入一个字符串:\n");
gets(ch);
len=strlen(ch);
/*比较ch[i]和ch[j],看是否相等*/
i=0;j=len-1;
while(i {
if(ch[i]==ch[j])
{
i++;
j--;
}
else
break;
}

if(i>=j)
{
printf("YES!");
}
else
{
printf("NO!"); 
}


return 0;
}
 
/*
输出结果:
请输入一个字符串:
121
YES!

请输入一个字符串:
1221
YES!

请输入一个字符串:
1231
NO!
*/