习题8-8 判断回文字符串(20 分)
本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。
函数接口定义:
1
| bool palindrome( char *s );
|
函数palindrome
判断输入字符串char *s
是否为回文。若是则返回true
,否则返回false
。
裁判测试程序样例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #include <stdio.h> #include <string.h>
#define MAXN 20 typedef enum {false, true} bool;
bool palindrome( char *s );
int main() { char s[MAXN];
scanf("%s", s); if ( palindrome(s)==true ) printf("Yes\n"); else printf("No\n"); printf("%s\n", s);
return 0; }
|
输入样例1:
输出样例1:
输入样例2:
输出样例2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| #include <stdio.h> #include <string.h>
#define MAXN 20 typedef enum {false, true} bool;
bool palindrome( char *s );
int main() { char s[MAXN];
scanf("%s", s); if ( palindrome(s)==true ) printf("Yes\n"); else printf("No\n"); printf("%s\n", s);
return 0; }
bool palindrome( char *s ){ int len; len=strlen(s); int i,j; for(i=0,j=len-1;i<=j;i++,j--){ if(*(s+i)!=*(s+j)){ break; } } if(i>j){ return true; }else{ return false; } }
|