编写一个C语言程序,判断给定字符串是否是回文。回文是指顺读和倒读都一样的字符串。
时间: 2024-04-29 17:27:12 浏览: 142
好的,我可以帮你解决这个问题。以下是一个简单的C语言程序示例,用于判断给定字符串是否为回文:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, flag = 0;
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0'; // 去掉换行符
len = strlen(str);
for (i = 0; i < len / 2; i++)
{
if (str[i] != str[len - 1 - i])
{
flag = 1;
break;
}
}
if (flag == 1)
{
printf("不是回文字符串\n");
}
else
{
printf("是回文字符串\n");
}
return 0;
}
```
输入一个字符串后,程序会逐个比较字符串的首尾字符是否相同,如果存在不同的字符,则字符串不是回文;如果所有字符都相同,则字符串是回文。希望能够帮到你。
相关问题
C语言编写程序判断给定字符串是否是回文。(回文是指正读和逆读都一样的字符串。)
可以使用双指针法,从字符串两端开始逐一比较字符是否相等,直到中间位置。具体实现代码如下:
#include <stdio.h>
#include <string.h>
int isPalindrome(char* str) {
int len = strlen(str);
int left = 0, right = len - 1;
while (left < right) {
if (str[left] != str[right]) {
return 0;
}
left++;
right--;
}
return 1;
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
if (isPalindrome(str)) {
printf("%s是回文字符串。\n", str);
} else {
printf("%s不是回文字符串。\n", str);
}
return 0;
}
当输入字符串为“abcba”时,输出为“abcba是回文字符串。”。
编写程序判断给定字符串是否是回文。(回文是指正读和逆读都一样的字符串。) 如: 输入:12321, 输出:是回文。 输入:12345, 输出: 不是回文。用c语言
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, j, len, flag = 1;
printf("请输入字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0, j = len-1; i < len/2; i++, j--) {
if (str[i] != str[j]) {
flag = 0;
break;
}
}
if (flag == 1) {
printf("是回文。\n");
} else {
printf("不是回文。\n");
}
return 0;
}
阅读全文