判断输入的字符串是否为“回文”

请按给定的函数原型,编写程序判断输入的字符串是否为“回文”。所谓“回文”,是指顺读和倒读都一样的字符串。如:“level”、“ABCCBA”都是回文。如是回文输出这个字符串,否则输出“No!”。要求:在主函数读入字符串,判断是否是回文调用Judger()函数实现。若是回文返回值为1,否则返回值为0。Judger函数函数原型:

int Judger( char a[ ]);

参数说明:数组a存放要判断的字符串

返回值:返回值是1表示是回文,返回值0表示不是回文。

[友情提示:]

设置两个指针pStar和pEnd,让pStar指向字符串首部,让pEnd指向字符串尾部。从字符串两边对指针所指的字符进行比较,当对应的两字符相等且两指针未超越对方时,使pStar指针向后移动一个字符位置,使pEnd指针向前移动一个字符位置,当对应的两字符不等或两指针已互相超越时(不可能是回文),判断结束。

编写程序,是则输出yes,否则输出No。

#include <iostream>

using namespace std;

int main()

{char s[100];

int i,j;

cout<<"请输入字符串s:"<<endl;

cin>>s;

for(i=0;s[i];i++);

for(i--,j=0;j<i&&s[i]==s[j];i++,j--);

if(i<j)cout<<"不是回文串"<<end;

else cout<<"是回文串"<<end;

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-22
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

int Judger(char a[])
{
char *p=a;
char *q=a+strlen(a)-1;
while(p<=q)
{
if(*p!=*q)
return 0;
p++;
q--;
}
return 1;
}

main()
{
char str[100];
scanf("%s",str);

if(Judger(str))
{
printf("Yes!\n");
}
else
{
printf("No£¡\n");
}

system("pause");
}

测试数据:
LouZhuNiHao
No!
请按任意键继续. . .

AccepttpeccA
Yes!
请按任意键继续. . .

楼主好运!本回答被提问者和网友采纳
相似回答