c 语言判断输入的一串字符是否是回文
时间: 2024-12-19 20:14:26 浏览: 13
在 C 语言中,判断一串字符是否是回文,通常需要将字符串反转并与原字符串进行比较。以下是一个简单的步骤和示例代码:
1. 定义一个函数,比如 `isPalindrome`,接收一个字符串作为参数。
2. 初始化两个指针,一个指向字符串的开始(`start`),另一个指向字符串的结束(`end`)。
3. 当 `start` 小于 `end` 时,循环执行以下操作:
a. 比较当前位置的字符(`str[start]`)和倒数位置的字符(`str[end]`)是否相等。
b. 如果不等,则返回 `false` 表示不是回文。
c. 如果相等,同时移动 `start` 向前一位,`end` 后退一位。
4. 循环结束后,如果所有字符都匹配,则返回 `true`,表示是回文。
下面是简单的 C 代码实现:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) {
if (str[start] != str[end]) {
return 0; // 回文判断失败
}
start++;
end--;
}
return 1; // 回文判断成功
}
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin); // 注意去除换行符
input[strlen(input) - 1] = '\0'; // 删除fgets读取的换行符
if (isPalindrome(input)) {
printf("%s is a palindrome.\n", input);
} else {
printf("%s is not a palindrome.\n", input);
}
return 0;
}
阅读全文