用c语言,输入一个字符串,判断它是否为回文串。回文串是指反转以后和原串相同的字符串,如abba和madam。
时间: 2024-12-19 21:25:43 浏览: 15
在C语言中,判断一个字符串是否为回文串,可以通过双指针法来实现。这种方法利用两个指针分别从字符串的头尾开始向中间移动,比较对应位置的字符是否相等,如果遇到不相等的字符,则该字符串不是回文串;当两个指针相遇或者交错时,说明所有字符都匹配成功,字符串就是回文。
以下是简单的C语言函数示例:
```c
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
bool isPalindrome(char str[]) {
int start = 0;
int end = strlen(str) - 1; // 获取字符串长度
while (start < end) {
if (str[start] != str[end]) { // 如果字符不相等
return false; // 找到非回文点,返回false
}
start++; // 向右移动左指针
end--; // 向左移动右指针
}
return true; // 所有字符都匹配,字符串是回文
}
int main() {
char input[100];
printf("请输入一个字符串:");
fgets(input, sizeof(input), stdin); // 防止换行符干扰
input[strlen(input) - 1] = '\0'; // 清除fgets留下的换行符
if (isPalindrome(input)) {
printf("%s 是回文串\n", input);
} else {
printf("%s 不是回文串\n", input);
}
return 0;
}
```
阅读全文