回文判断。从键盘输入任意一个字符串,判断该字符串是否为回文。(字符串首部和尾部的空格不参与比较)。(用字符串解决)c语言
时间: 2024-10-20 18:13:29 浏览: 87
PHP判断一个字符串是否是回文字符串的方法
5星 · 资源好评率100%
在C语言中,判断一个字符串是否为回文的一种简单方法是忽略空格和大小写,只考虑字符本身。以下是基本的步骤:
1. 定义两个指针,一个指向字符串开始(`str_start`),另一个指向字符串结束(`str_end`)。
2. 清理字符串,移除首尾的空格,并转化为小写或大写以统一比较。
3. 使用循环结构,当`str_start`小于等于`str_end`时,比较对应的字符是否相等。
- 如果不相等,则说明不是回文,返回false。
- 否则,将两个指针向中间移动一位继续比较。
4. 循环结束后,如果没有发现不相等的字符,说明字符串是回文,返回true。
下面是一个简单的C语言示例:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int i = 0, j = strlen(str) - 1;
while (i < j) {
// 移除空格并转为小写
while (i < j && str[i] == ' ') i++;
while (i < j && str[j] == ' ') j--;
// 如果字符不相等,返回 false
if (tolower(str[i]) != tolower(str[j])) return 0;
i++, j--;
}
return 1;
}
int main() {
char input[100];
printf("请输入一个字符串:");
fgets(input, sizeof(input), stdin); // 防止换行符干扰
input[strcspn(input, "\n")] = '\0'; // 移除fgets获取的最后一行的换行符
if (isPalindrome(input)) {
printf("给定的字符串是回文。\n");
} else {
printf("给定的字符串不是回文。\n");
}
return 0;
}
```
阅读全文