C语言实现回文串判断:附代码示例与详解
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
// 判断字符串是否为回文串
boolean isPalindrome(char string[]) {
int length = strlen(string);
for (int i = 0; i < length / 2; i++) {
if (string[i] != string[length - i - 1]) {
return false;
}
}
return true;
}
int main() {
char string[100];
printf('请输入一个字符串: ');
fgets(string, sizeof(string), stdin);
// 去除字符串末尾的换行符
string[strcspn(string, '\n')] = '\0';
if (isPalindrome(string)) {
printf('该字符串是回文串\n');
} else {
printf('该字符串不是回文串\n');
}
return 0;
}
代码解释:
-
isPalindrome函数:- 接收一个字符串作为参数。
- 使用
strlen函数获取字符串的长度。 - 使用循环遍历字符串的前半部分,比较对应位置的字符是否相等。
- 如果发现有不相等的字符,则返回
false,表示该字符串不是回文串。 - 如果循环结束后都没有发现不相等的字符,则返回
true,表示该字符串是回文串。
-
main函数:- 定义一个字符数组
string用于存储输入的字符串。 - 使用
printf函数提示用户输入一个字符串。 - 使用
fgets函数获取用户输入的字符串,并将其存储到string数组中。 - 使用
strcspn函数查找字符串末尾的换行符\n,并将其替换为字符串结束符\0,以去除换行符的影响。 - 调用
isPalindrome函数判断输入的字符串是否为回文串。 - 根据
isPalindrome函数的返回值,使用printf函数输出相应的结果。
- 定义一个字符数组
回文串定义:
回文串是指正序(从左往右)和倒序(从右往左)读都是一样的字符串,例如 'level'、'madam'、'racecar' 等。
原文地址: https://www.cveoy.top/t/topic/obx 著作权归作者所有。请勿转载和采集!