利用C语言编写一个程序输入一个字符串。判断该字符串是否为回文。当字符串是回文时输出yes否则输出no。所谓回文是指正向与反向的拼写都一样的字符串
时间: 2023-06-19 11:03:57 浏览: 235
以下是一个用C语言实现判断回文的程序:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, flag = 0;
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 == 1)
{
printf("no");
}
else
{
printf("yes");
}
return 0;
}
```
程序先读取一个字符串,然后使用`strlen()`函数来计算字符串的长度。接下来使用一个循环,逐个比较字符串的第一个字符和最后一个字符、第二个字符和倒数第二个字符,以此类推。如果有任何一个字符不匹配,就将`flag`标志设置为1,程序就输出`no`。如果所有字符都匹配,`flag`标志保持为0,程序输出`yes`。
相关问题
C语言,输入一个字符串(可以包含空格),利用指针实现回文串的判定,是回文输出Yes,否则输出N
回文串是指正着和倒着读都一样的字符串,例如"level"、"noon"、"racecar"等。可以使用指针来判断一个字符串是否是回文串。
具体的步骤如下:
1. 定义一个指向字符串开头的指针p1和一个指向字符串末尾的指针p2。
2. 使用while循环,每次比较p1和p2所指向的字符是否相同,如果不同则输出N,退出程序。
3. 如果相同,则将p1向后移动一位,将p2向前移动一位,继续比较下一个字符。
4. 如果p1和p2指针相遇,则说明字符串是回文串,输出Yes。
下面是一个示例代码,可以实现从标准输入中读取一个字符串,并使用指针判断该字符串是否是回文串:
```
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
char *p1, *p2;
int len, i;
printf("Enter a string: ");
fgets(str, 100, stdin);
len = strlen(str) - 1;
p1 = str;
p2 = str + len - 1;
while (p1 < p2) {
if (*p1 != *p2) {
printf("N\n");
return 0;
}
p1++;
p2--;
}
printf("Yes\n");
return 0;
}
```
注意,使用fgets函数读取的字符串会包含换行符'\n',需要将其替换掉或者在判断时忽略。
输入一个字符串判断该字符串是否为回文用c语言写
以下是用C语言实现判断一个字符串是否为回文字符串的代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, j, len, flag = 1;
printf("请输入一个字符串:");
gets(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)
{
printf("yes\n");
}
else
{
printf("no\n");
}
return 0;
}
```