欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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