输入一个字符串,判断其是否是回文,是输出“yes”,不是输出“no”。回文即正读,反读是完全相同的文字。(如ABCDCBA、madam是回文,abcd不是回文。)
使用VC++6.0实现:
不使用指针:
#include <iostream.h>
#include <string.h>
void main()
{
int i,j,n=0,flag;
char a[21];
cin.getline(a,sizeof(a));
n=strlen(a);
flag=0;
for (i=0,j=n-1;i<n/2;i++,j--)
if (a[i]!=a[j])
flag=1;
if (flag)
cout<<"no"<<endl;
else
cout<<"yes"<<endl;
}
使用指针实现;
#include<iostream.h>
#include<string.h>
void check(char *s)
{
char *p1,*p2;
int n;
n=strlen(s);
p1=&s[0];
p2=&s[n-1];
for(*p1=s[0],*p2=s[n-1];p1<p2;p1++,p2--)
if(*p1!=*p2)
{
cout<<"no"<<endl;
break;
}
else
{
cout<<"yes"<<endl;
break;
}
}
void main()
{
char str[100],*p;
cout<<"请输入要判断的字符:"<<endl;
cin>>str;
p=str;
check(p);
}