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

从键盘读入一个字符串,判断其是否为回文.
字符串的实际长度最好调用strlen()函数来进行计算,使用系统提供的字符串函数要注意包含头文件string.h,建议函数原形为int Judge(char s[]),若不是回文返回0,是回文则返回1.main()函数中定义一个字符数组并输入值,将此字符数组作为实在参数调用Judge函数得到判断结果,根据该结果输出字符串是不是回文的信息提示给用户.
用gets()函数和puts()函数。
字符串是存放在字符数组中的,由于数组的大小是预先定义好的,所以在用户输入字符串之前,最好先提示一下用户字符串长度的上限。

第1个回答  推荐于2018-05-03
#include<string.h>
#include<stdio.h>
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");
}

这程序 我粗略写的 没有运行 你运行试一下
有问题的话 你发邮件给我
[email protected]本回答被提问者和网友采纳
第2个回答  2018-05-01
#include<stdio.h>
#include<string.h>
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<j)//两头往中间方向比较,总会相遇,所以保证i<j 
{
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!
*/

相似回答