判读回文的几种方法
1 #include <stdio.h> 2 int palind(char str[],int k, int i)/*自定义函数检测是否为回文字符串*/ 3 { 4 if(str[k]==str[i-k]&&k==0)/*递归结束条件*/ 5 return 1; 6 else if(str[k]==str[i-k])/*判断相对应的两个字符是否相等*/ 7 palind(str,k-1,i); /*递归调用*/ 8 else 9 return 0; 10 } 11 12 main() 13 { 14 int i=0,n=0;/*i记录字符个数,n是函数返回值*/ 15 char ch,str[20]; 16 printf("\nplease input string:\n"); 17 while ((ch=getchar())!='\n') 18 { 19 str[i]=ch; 20 i++; 21 } 22 if(i%2==0)/*当字符串中字符个数为偶数时*/ 23 n=palind(str,(i/2),i-1); 24 else 25 n=palind(str,(i/2-1),i-1);/*当字符串中字符个数为奇数时*/ 26 if(n==0) 27 printf("not palindrome");/*当n为0说明不是回文数,否则是回文数*/ 28 else 29 printf("palindrome"); 30 getch(); 31 }