用c语言写写下列问题描述: 给定一个字符串,你需要判断它是否为回文。 输入格式: 输入包含一个字符串s。 输出格式: 如果字符串是回文,则输出"Yes",否则输出"No"。
时间: 2024-10-13 08:16:24 浏览: 46
程判断输入的一串字符是否为“回文”。所谓“回文”是指顺序读和逆序读都一样的字符串。如:“12321”和“abcdcba”都是回文。
在C语言中,你可以通过比较字符串与其反转后的字符串是否相等的方式来判断一个字符串是否为回文。以下是实现这一功能的一个简单程序:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) { // 只需遍历到字符串一半即可
if (str[i] != str[len - 1 - i]) { // 如果任意一对对应字符不相等
return 0; // 则不是回文,直接返回No
}
}
return 1; // 如果全部字符都匹配,说明是回文,返回Yes
}
int main() {
char s[100];
printf("请输入一个字符串:");
fgets(s, sizeof(s), stdin); // 读入字符串,fgets处理换行符
s[strlen(s) - 1] = '\0'; // 去除fgets末尾多余的换行符
if (isPalindrome(s)) {
printf("Yes\n");
} else {
printf("No\n");
}
return 0;
}
```
在这个程序中,`isPalindrome`函数检查字符串`s`的首尾字符是否对称,逐个向前移动直到中间位置。如果是回文,整个过程会成功结束并返回1;反之,一旦发现不相等的字符就立即返回0。主函数部分则获取用户输入的字符串,并调用这个函数来判断是否为回文。
阅读全文