鱼C论坛

 找回密码
 立即注册
查看: 1788|回复: 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

  1. #include<stdio.h>
  2. #include<string.h>
  3. void fun(char s[])
  4. {
  5.         char b[100];
  6.         char c[100];
  7.         int len,i=0,count=0,max=0;
  8.         len=strlen(s);
  9.         for(i=0;i<len;i++)
  10.         {
  11.                 if(s[i]!=' ')
  12.                         b[count++]=s[i];
  13.                 else if(s[i]==' ')
  14.                 {
  15.                         if(count>max)
  16.                         {
  17.                                 max=count;
  18.                                 strcpy(c,b);
  19.                                 c[count]='\0';
  20.                                 count=0;
  21.                         }
  22.                         count=0;//这句话不管count>max成不成立,只有遇到空格了count就需要归零
  23.                 }
  24.         }
  25.                                 if(count>max)//最后一个单词也要判断一下
  26.                         {
  27.                                 max=count;
  28.                                 strcpy(c,b);
  29.                                 c[count]='\0';
  30.                                 count=0;
  31.                         }
  32.         puts(c);
  33. }
  34. int main()
  35. {
  36.         char a[100];
  37.         printf("请输入一个字符串:");
  38.         gets(a);
  39.         fun(a);
  40.         return 0;
  41. }
复制代码

代码还有一个错误现在改过来了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

此楼作废
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

不行,还是有乱码出现
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

用的什么软件……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2021-3-8 15:13:46 | 显示全部楼层    本楼为最佳答案   

  1. #include<stdio.h>
  2. #include<string.h>
  3. void fun(char s[])
  4. {
  5.         char b[100];
  6.         char c[100];
  7.         int len,i=0,count=0,max=0;
  8.         len=strlen(s);
  9.         for(i=0;i<len;i++)
  10.         {
  11.                 if(s[i]!=' ')
  12.                         b[count++]=s[i];
  13.                 else if(s[i]==' ')
  14.                 {
  15.                         if(count>max)
  16.                         {
  17.                                 max=count;
  18.                                 strcpy(c,b);
  19.                                 c[count]='\0';
  20.                                 count=0;
  21.                         }
  22.                         count=0;//这句话不管count>max成不成立,只有遇到空格了count就需要归零
  23.                 }
  24.         }
  25.                                 if(count>max)//最后一个单词也要判断一下
  26.                         {
  27.                                 max=count;
  28.                                 strcpy(c,b);
  29.                                 c[count]='\0';
  30.                                 count=0;
  31.                         }
  32.         puts(c);
  33. }
  34. int main()
  35. {
  36.         char a[100];
  37.         printf("请输入一个字符串:");
  38.         gets(a);
  39.         fun(a);
  40.         return 0;
  41. }
复制代码

代码还有一个错误现在改过来了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

我不知道是不是我的编译器问题,编译器是学校老师搞得盗版VC2010
我复制你的,就直接报错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-4 09:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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