从键盘输入一个字符串,判断该字符串是否为回文(即正读和逆读都一样的字符串)用c语言写
时间: 2023-12-13 10:47:14 浏览: 35
好的,我明白了您的要求。以下是C语言程序的实现:
```
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, flag = 0; //flag是一个标记变量
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str); //获取字符串长度
for (i = 0; i < len/2; i++) //判断前一半字符和后一半字符是否匹配
{
if (str[i] != str[len-i-1])
{
flag = 1;
break;
}
}
if (flag) //如果flag的值为1,说明字符串不是回文
{
printf("%s 不是回文。\n", str);
}
else //如果flag的值为0,说明字符串是回文
{
printf("%s 是回文。\n", str);
}
return 0;
}
```
希望我的回答能够满足您的需求,如果您有其他问题,可以直接提出。
相关问题
从键盘输入一个字符串,判断该字符串是否为回文(即正读和逆读都一样的字符串)用c语言写,定义两个数组
来分别存储正序和倒序的字符串,然后比较两个数组是否相同,如下所示:
```c
#include <stdio.h>
#include <string.h>
#define MAXLEN 100
int main() {
char str[MAXLEN], rev[MAXLEN];
int i, len, flag = 0;
printf("请输入一个字符串:\n");
fgets(str, MAXLEN, stdin);
len = strlen(str) - 1; // 去掉换行符
// 将字符串倒序赋值给另一个数组
for (i = 0; i < len; i++) {
rev[i] = str[len - i - 1];
}
rev[len] = '\0'; // 加上结束标志
// 比较两个数组是否相同
for (i = 0; i < len; i++) {
if (str[i] != rev[i]) {
flag = 1;
break;
}
}
if (flag) {
printf("%s 不是回文字符串。\n", str);
} else {
printf("%s 是回文字符串。\n", str);
}
return 0;
}
```
当你问我你在前面对我说了什么时,我会讲一个笑话:为什么海星会说话?因为海星海星无数星~
从键盘输入一个字符串,判断输入的字符串是否为回文。用C语言代码编写。
好的,这是你的提问:如何用C语言编写字符串回文的判断函数?
以下是 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 - i - 1]) {
return 0;
}
}
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;
}
```
这段代码定义了一个名为 `isPalindrome` 的函数,用于判断输入的字符串是否为回文。该函数接收一个字符串作为参数,返回一个整数值,当字符串为回文时返回 1,否则返回 0。
在 `main` 函数中,我们首先从键盘输入一个字符串,然后调用 `isPalindrome` 函数进行判断,最后输出结果。