鱼C论坛

 找回密码
 立即注册
查看: 1547|回复: 7

[已解决]函数

[复制链接]
发表于 2021-3-8 12:51:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
#include<string.h>
void fun(char s[])
{
        char b[100];
        char c[100];
        int len,len1,i=0,count=0,max=0;
        len=strlen(s);
        for(i=0;i<len;i++)
        {
                if(s[i]!=' ')
                        b[count++]=s[i];
                if(s[i]==' ')
                {
                        if(count>max)
                        {
                                max=count;
                                strcpy(c,b);
                                count=0;
                                len1=strlen(c);
                                c[len1]='\0';
                        }
                }
        }
        puts(c);
}
int main()
{
        char a[100];
        printf("请输入一个字符串:");
        gets(a);
        fun(a);
        return 0;
}


//要求是要输入一行字符串,以空格隔开,然后输出这个字符串里面最长的单词,比如输入i like fishc,输出fishc,
但是我的输出有问题,请大佬看看哪里错了
最佳答案
2021-3-8 15:13:46
#include<stdio.h>
#include<string.h>
void fun(char s[])
{
        char b[100];
        char c[100];
        int len,i=0,count=0,max=0;
        len=strlen(s);
        for(i=0;i<len;i++)
        {
                if(s[i]!=' ')
                        b[count++]=s[i];
                else if(s[i]==' ')
                {
                        if(count>max)
                        {
                                max=count;
                                strcpy(c,b);
                                c[count]='\0';
                                count=0;
                        }
                        count=0;//这句话不管count>max成不成立,只有遇到空格了count就需要归零
                }
        }
                                if(count>max)//最后一个单词也要判断一下
                        {
                                max=count;
                                strcpy(c,b);
                                c[count]='\0';
                                count=0;
                        }
        puts(c);
}
int main()
{
        char a[100];
        printf("请输入一个字符串:");
        gets(a);
        fun(a);
        return 0;
}
代码还有一个错误现在改过来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-8 13:15:13 | 显示全部楼层
本帖最后由 洋洋痒 于 2021-3-8 15:36 编辑

此楼作废
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-8 13:20:23 | 显示全部楼层
你的代码每出现一次空格判断一次长度,但是最后一个单词却没有判断,所以在循环结束后再判断一下最后一个单词的长度
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-8 14:27:53 | 显示全部楼层
洋洋痒 发表于 2021-3-8 13:20
你的代码每出现一次空格判断一次长度,但是最后一个单词却没有判断,所以在循环结束后再判断一下最后一个单 ...

不行,还是有乱码出现
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-8 14:48:59 | 显示全部楼层
严凯 发表于 2021-3-8 14:27
不行,还是有乱码出现

用的什么软件……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-8 14:57:49 | 显示全部楼层
我用的codeblocks,自己复制自己刚才发的代码也乱码了……
可以按照这个网址方法二修改软件,之后就不乱码了
https://blog.csdn.net/zhao2chen3/article/details/81352682
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-8 15:13:46 | 显示全部楼层    本楼为最佳答案   
#include<stdio.h>
#include<string.h>
void fun(char s[])
{
        char b[100];
        char c[100];
        int len,i=0,count=0,max=0;
        len=strlen(s);
        for(i=0;i<len;i++)
        {
                if(s[i]!=' ')
                        b[count++]=s[i];
                else if(s[i]==' ')
                {
                        if(count>max)
                        {
                                max=count;
                                strcpy(c,b);
                                c[count]='\0';
                                count=0;
                        }
                        count=0;//这句话不管count>max成不成立,只有遇到空格了count就需要归零
                }
        }
                                if(count>max)//最后一个单词也要判断一下
                        {
                                max=count;
                                strcpy(c,b);
                                c[count]='\0';
                                count=0;
                        }
        puts(c);
}
int main()
{
        char a[100];
        printf("请输入一个字符串:");
        gets(a);
        fun(a);
        return 0;
}
代码还有一个错误现在改过来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-8 18:55:12 | 显示全部楼层
洋洋痒 发表于 2021-3-8 15:13
代码还有一个错误现在改过来了

我不知道是不是我的编译器问题,编译器是学校老师搞得盗版VC2010
我复制你的,就直接报错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 11:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表