输入一个字符串判断是否是对称字符串c语言
时间: 2024-10-26 21:01:17 浏览: 24
使用C语言提取子字符串及判断对称子字符串最大长度
在C语言中,判断一个字符串是否是对称(也称为回文),可以将字符串一半的字符与另一半的字符逐个比较。以下是一个简单的函数实现示例:
```c
#include <stdio.h>
#include <string.h>
// 函数来检查给定字符串是否对称
int is_palindrome(char str[]) {
int len = strlen(str);
// 如果字符串长度为奇数,中间字符不需要比较
if (len % 2 == 0) {
int i = 0;
int j = len - 1;
while (i < j) {
if (str[i] != str[j])
return 0; // 不是回文,直接返回
i++;
j--;
}
} else {
int i = 0;
int j = len - 1;
while (i < j) {
if (str[i] != str[j])
return 0; // 不是回文,直接返回
i++;
j--;
}
// 中间字符单独处理,因为是奇数长度,中间的那个字符只比较一次
if (str[len / 2] != str[len / 2])
return 0; // 不是回文
}
return 1; // 是回文,返回1
}
int main() {
char test_str[50];
printf("请输入字符串:");
fgets(test_str, sizeof(test_str), stdin); // 防止换行符
test_str[strcspn(test_str, "\n")] = '\0'; // 移除换行符
if (is_palindrome(test_str)) {
printf("%s 是对称字符串。\n", test_str);
} else {
printf("%s 不是对称字符串。\n", test_str);
}
return 0;
}
```
阅读全文