C语言练习8—判断回文字符串
程序员文章站
2024-01-14 17:14:22
...
本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。
函数接口定义:
bool palindrome( char *s );
函数palindrome判断输入字符串char *s是否为回文。若是则返回true,否则返回false。
C语言代码
#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);
system("pause");
return 0;
}
bool palindrome(char *s) {
int i = 1, j = strlen(s);
int k = 0; //左右字符相等的个数
bool m = false;
bool n = true;
while (i < j) {
if (s[i - 1] == s[j - 1])
k++;
i++;
j--;
}
/*如果左右字符相等个数等于总字符数的一半,则说明是回文字符串*/
if (k == strlen(s) / 2)
return n;
else
return m;
}