C语言练习8—判断回文字符串

本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。
函数接口定义:
bool palindrome( char *s );

函数palindrome判断输入字符串char *s是否为回文。若是则返回true,否则返回false。
C语言代码

#include 
#include 

#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;   
}

你可能感兴趣的:(C语言编程练习)