用c写一个代码,判断输入字符串是否是回文
时间: 2023-06-21 20:14:09 浏览: 82
以下是使用 C 语言编写的判断输入字符串是否是回文的代码:
```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) {
printf("是回文字符串\n");
} else {
printf("不是回文字符串\n");
}
return 0;
}
```
代码中,首先声明了一个字符数组 `str` 用于存储输入的字符串,然后使用 `scanf()` 函数读取输入的字符串。接着,使用 `strlen()` 函数获取字符串长度,然后使用双指针法(即从字符串两端同时向中间移动)判断是否是回文字符串。如果发现不相同的字符,则将 `flag` 标记设为 0,表示不是回文字符串。最后根据 `flag` 的值输出判断结果。
相关问题
编写函数:int fun(char *p),功能是判断一个字符串是否是回文字符串(提示:回文字符串是指正读和反读都一样的字符串),要求从主函数中由键盘输入字符串,调用函数fun后,根据函数fun的返回值,主函数输出是否为回文字符串的判断。
好的,下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
int fun(char *p)
{
int len = strlen(p);
int i;
for (i = 0; i < len / 2; i++)
{
if (p[i] != p[len - i - 1])
{
return 0;
}
}
return 1;
}
int main()
{
char str[100];
printf("请输入字符串:");
scanf("%s", str);
if (fun(str))
{
printf("是回文字符串\n");
}
else
{
printf("不是回文字符串\n");
}
return 0;
}
```
在上面的代码中,我们先定义了一个函数 `fun` ,该函数的参数为一个字符串指针 `p` ,返回值为整型。在函数中,我们首先计算字符串的长度 `len` ,然后使用循环判断该字符串是否为回文字符串,如果是,返回 1 ,否则返回 0 。
在主函数中,我们先从键盘输入一个字符串,然后调用函数 `fun` 判断该字符串是否为回文字符串,并根据函数的返回值输出判断结果。
c语言判断输入的字符串是否为回文串,如果是输出yes,如果不是输出no。
可以使用双指针来判断一个字符串是否为回文串。具体做法如下:
1. 定义两个指针i和j,分别指向字符串的起始位置和末尾位置。
2. 循环比较i和j指向的字符是否相等,如果不相等,说明该字符串不是回文串,输出no。
3. 如果相等,将i指针往右移动一位,j指针往左移动一位,继续进行比较。
4. 当i和j指针相遇时,说明该字符串是回文串,输出yes。
下面是C语言实现的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, j, len;
printf("请输入一个字符串:");
gets(str); // 输入字符串
len = strlen(str);
for (i = 0, j = len - 1; i < j; i++, j--) {
if (str[i] != str[j]) {
printf("no\n");
return 0;
}
}
printf("yes\n");
return 0;
}
```
需要注意的是,上面的代码使用了gets函数来获取输入的字符串,但是gets函数存在安全隐患,应该尽量避免使用。可以使用fgets函数替代,具体用法可以参考C语言的相关教材。
阅读全文