用c语言编写程序,读入一行字符(长度小于1000),判断它是否是回文,输出是或否。 (所谓回文即正序和逆序内容相同的字符串) 【注意】输入和输出各占一行;运行效果应如下所示(第1行为输入,数据间用半角空格分隔,第2行为输出),格式错误算结果错误。 abcba 是
时间: 2023-05-20 13:05:44 浏览: 41
回文
```
#include <stdio.h>
#include <string.h>
int main() {
char str[1001];
int len, i, j, flag = 1;
scanf("%s", str);
len = strlen(str);
for (i = 0, j = len - 1; i < j; i++, j--) {
if (str[i] != str[j]) {
flag = 0;
break;
}
}
if (flag) {
printf("回文\n");
} else {
printf("不是回文\n");
}
return 0;
}
```
相关问题
用C语言编写程序,读入一行字符(长度小于1000),判断它是去是回文,输出是或否。
可以使用以下代码实现:
#include <stdio.h>
#include <string.h>
int main() {
char str[1000];
int i, j, len, flag = 1;
printf("请输入一行字符:");
fgets(str, 1000, stdin);
len = strlen(str) - 1; // 去掉换行符
for (i = 0, j = len - 1; i < j; i++, j--) {
if (str[i] != str[j]) {
flag = 0;
break;
}
}
if (flag) {
printf("是回文\n");
} else {
printf("不是回文\n");
}
return 0;
}
用c语言编写程序判断输入字符串是否为“回文”。所谓“回文”,是指顺读和倒读都是一样的字符串
可以使用两个指针分别指向字符串的首尾字符,然后依次向中间靠拢比较字符是否相同。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char* str) {
int len = strlen(str);
char* p = str;
char* q = str + len - 1;
while (p < q) {
if (*p != *q) {
return 0;
}
p++;
q--;
}
return 1;
}
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
if (isPalindrome(str)) {
printf("是回文字符串\n");
} else {
printf("不是回文字符串\n");
}
return 0;
}
```
这段代码首先使用 `strlen()` 函数获取字符串长度,然后使用两个指针 `p` 和 `q` 分别指向字符串的首尾字符。在循环中,如果两个字符不相等,则说明不是回文字符串,直接返回 0;否则,将指针向中间靠拢继续比较,直到 `p` 大于等于 `q`,此时说明是回文字符串,返回 1。最后在 `main()` 函数中读入字符串,调用 `isPalindrome()` 函数判断是否为回文字符串,根据返回值输出相应的结果。