编写函数:int fun(char *p),功能是判断一个字符串是否是回文字符串(提示:回文字符串是指正读和反读都一样的字符串),要求从主函数中由键盘输入字符串,调用函数fun后,根据函数fun的返回值,主函数输出是否为回文字符串的判断。
时间: 2024-02-24 09:00:19 浏览: 66
好的,下面是代码实现:
```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语言,写程序:编写函数:int fun(char *p),功能是判断一个字符串是否是回文字符串(提示:回文字符串是指正读和反读都一样的字符串),要求从主函数中由键盘输入字符串,调用函数fun后,根据函数fun的返回值,主函数输出是否为回文字符串的判断。 【输入形式】 字符串 【输出形式】 是否为回文串
下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
int fun(char *p) {
int len = strlen(p);
for (int i = 0; i < len / 2; i++) {
if (p[i] != p[len - i - 1]) {
return 0;
}
}
return 1;
}
int main() {
char str[100];
printf("请输入一个字符串:\n");
scanf("%s", str);
if (fun(str)) {
printf("%s是回文字符串\n", str);
} else {
printf("%s不是回文字符串\n", str);
}
return 0;
}
```
函数 `fun` 的实现很简单,遍历字符串的前一半,判断每个字符是否与对应的后一半相等,如果有一个不相等就返回0,否则返回1。主函数中先从键盘输入一个字符串,再调用 `fun` 判断是否为回文字符串,并输出判断结果。
请编写函数fun,该函数的功能是:判断字符串是否为回文,若是,则函数返回1,主函数中输出"YES",否则返回0,主函数中输出"NO"。回文是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。 fun函数原型:int fun(char *str);完整代码
完整代码如下:
```c
#include <stdio.h>
#include <string.h>
int fun(char *str);
int main()
{
char str[100];
scanf("%s", str);
if (fun(str)) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
int fun(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;
}
```
在 `main` 函数中,首先读入一个字符串 `str`,然后调用 `fun` 函数来判断该字符串是否为回文,如果是,则输出 "YES",否则输出 "NO"。
在 `fun` 函数中,首先计算字符串的长度,然后从字符串的两端开始比较,如果有任何一个字符不相同,就说明该字符串不是回文,返回 0;如果整个字符串都被比较完了,都没有发现不同的字符,就说明该字符串是回文,返回 1。
阅读全文