c语言输入一个字符串,判断是否是回文字符串。如123#321,abccba等。
时间: 2024-12-12 18:26:58 浏览: 10
程判断输入的一串字符是否为“回文”。所谓“回文”是指顺序读和逆序读都一样的字符串。如:“12321”和“abcdcba”都是回文。
在C语言中,判断一个字符串是否为回文(正读反读都一样的字符串,比如"12321"、"aba"等)可以通过比较字符串与其反转后的字符串是否相等来完成。下面是一个简单的实现:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int length = strlen(str); // 获取字符串长度
for (int i = 0; i < length / 2; i++) { // 只需遍历一半字符,因为对称部分已经匹配过了
if (str[i] != str[length - i - 1]) {
// 如果找到不相等的字符,返回0表示不是回文
return 0;
}
}
// 遍历结束,没有发现不相等的字符,说明是回文
return 1;
}
int main() {
char input[100];
printf("请输入一个字符串:");
fgets(input, sizeof(input), stdin); // 使用fgets获取整个行的输入,包括换行符
input[strcspn(input, "\n")] = '\0'; // 移除末尾的换行符
if (isPalindrome(input)) {
printf("%s 是一个回文字符串。\n", input);
} else {
printf("%s 不是一个回文字符串。\n", input);
}
return 0;
}
阅读全文