回文:回文就是正讀反讀都一樣的字符串,例如:"radar","able was i ere i saw elba" 和 "a man a plan a canal panama"(如果忽略空格) 。
請編寫遞歸函數testPalindrome,在數組中的字符串為回文時返回true,否則返回false. 函數忽略字符串中的空格和標點符號。
#include <stdio.h>
/* 字符串 一半數 總個數*/
int charf(char d[],int k, int i)
{
if(d[k]==d[i-k]&&k==0)
return(1);
else if(d[k]==d[i-k])
charf(d,k-1,i); /*遞歸調用*/
else
return(0);
}
main()
{
int i=0,n=0;
char a,b[20];
while ((a=getchar())!='\n')
{
b[i]=a;
i++;
}
if(i%2==0)
n=charf(b,(i/2),i-1);
else
n=charf(b,(i/2-1),i-1);
if(n==0)
printf("不是回文");
else
printf("是回文");
getch();
}