#include <stdio.h> #include <string.h> #include <math.h> int palindrome( char *string ); void main() { char str[30]; int n; gets(str); n = palindrome( str ); if ( n==1 ) printf("%s/n",str); else printf("No/n"); } int palindrome( char *string ) { int i,n,len; len = strlen( string )-1; /*最后一个单词的位置要减1,因为下标从0开始*/ for ( i=0; i<len; ) { if ( *(string+i)<='Z'&&*(string+i)>='A' || *(string+i)<='z'&&*(string+i)>='a' ) { if ( *(string+len)<='Z'&&*(string+len)>='A' || *(string+len)<='z'&&*(string+len)>='a' ) { if ( *(string+i)!=*(string+len) ) { if (fabs( *(string+i)-*(string+len) )!='a'-'A') break; else /*如果从后面开始的字母和从前面开始的字母相差大小写字母的差值*/ { len--; i++; } } else /*如果从后面开始的字母和前面开始的字母相等*/ { len--; i++; } } else len--; /*如果从后面开始的字符不是字母*/ } else /*如果从前面开始的字符不是字母*/ i++; } if ( i<len ) return(0); else return(1); }