用c语言写输入一个字符串,判断该字符串是否回文, 输入一行字符串,长度小于100. 如果字符串是回文,输出yes;否则 输出no
时间: 2024-09-06 17:03:31 浏览: 26
在C语言中,判断一个字符串是否为回文可以通过比较字符串与其反转后的字符串是否相同来实现。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int main() {
char str[100]; // 假设字符串长度小于100
printf("请输入一个字符串(长度小于100):");
scanf("%99s", str); // 读取字符串,最多读取99个字符,留一个位置给结束符'\0'
int len = strlen(str);
bool isPalindrome = true; // 假设字符串是回文
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) { // 比较字符是否相等
isPalindrome = false; // 如果有不相等的字符,不是回文
break;
}
}
if (isPalindrome) {
printf("yes\n");
} else {
printf("no\n");
}
return 0;
}
```
这段代码首先定义了一个长度为100的字符数组来存储输入的字符串,并限制了`scanf`函数的读取长度,以防止数组越界。接着计算字符串的长度,并使用一个布尔变量`isPalindrome`来记录是否为回文。通过循环遍历字符串的前半部分和后半部分进行比较,如果发现有不匹配的字符,则设置`isPalindrome`为`false`并跳出循环。最后根据`isPalindrome`的值输出结果。