程序代码如下:
#include<iostream>
using namespace std;
int check(char *a , int len )
{
if(len==0 || len==1)
return 1;
for(int i=0 ,j = len-1; i<=j; i++,j--)
{
if(*(a+i) != *(a+j)) return 0;
}
return 1;
}
int main()
{
char str[20];
cout<<"\n请输入一个字符串:";
cin>>str;
if(check( str, strlen(str)) == 1)
cout<<"是回文串"<<endl;
else
cout<<"不是回文串"<<endl;
system("pause");
}
递归判断,程序代码如下:
#include<iostream>
using namespace std;
int check(int l, int r, char *a , int len )
{
if(len == 0 || len == 1)
return 1;
if(a[l] != a[r])
return 0;
return check(l+1, r-1, a, len-2);
}
int main()
{
char str[20];
cout<<"\n请输入一个字符串:";
cin>>str;
if(check(0, strlen(str)-1 ,str, strlen(str)) == 1)
cout<<"是回文串"<<endl;
else
cout<<"不是回文串"<<endl;
system("pause");
}