回文串可以被定义为形如abccba,也可以是a bc c b a(含空格)。
(1)使用递归思想,实现一个检测回文串的函数。
#include<stdio.h>
#include<string.h>
#define N 100
bool digui(char *a,int n){
if(n==0||n==1)
return true;
else if(a[0]==a[n-1])
digui(a+1,n-2);//指针加一递归回去变新数组,首字符尾字符比较后长度应该减2
else
return false;
}
int main(){
char a[N];
gets(a);
//scanf("%s",a);//scanf不能读取空格,读取空格直接结束
int len=strlen(a);
//printf("%d\n",len);
char b[len];
int count=0;
for(int i=0;i<len;i++){
if(a[i]!=' ')
b[count++]=a[i];
}
if(digui(b,count)==true){
printf("是回文串!");
}else{
printf("不是回文串!");
}
}