严凯 发表于 2021-3-8 12:51:39

函数

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


//要求是要输入一行字符串,以空格隔开,然后输出这个字符串里面最长的单词,比如输入i like fishc,输出fishc,
但是我的输出有问题,请大佬看看哪里错了

洋洋痒 发表于 2021-3-8 13:15:13

本帖最后由 洋洋痒 于 2021-3-8 15:36 编辑

此楼作废

洋洋痒 发表于 2021-3-8 13:20:23

你的代码每出现一次空格判断一次长度,但是最后一个单词却没有判断,所以在循环结束后再判断一下最后一个单词的长度

严凯 发表于 2021-3-8 14:27:53

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

不行,还是有乱码出现

洋洋痒 发表于 2021-3-8 14:48:59

严凯 发表于 2021-3-8 14:27
不行,还是有乱码出现

用的什么软件……

洋洋痒 发表于 2021-3-8 14:57:49

我用的codeblocks,自己复制自己刚才发的代码也乱码了……
可以按照这个网址方法二修改软件,之后就不乱码了
https://blog.csdn.net/zhao2chen3/article/details/81352682

洋洋痒 发表于 2021-3-8 15:13:46


#include<stdio.h>
#include<string.h>
void fun(char s[])
{
      char b;
      char c;
      int len,i=0,count=0,max=0;
      len=strlen(s);
      for(i=0;i<len;i++)
      {
                if(s!=' ')
                        b=s;
                else if(s==' ')
                {
                        if(count>max)
                        {
                              max=count;
                              strcpy(c,b);
                              c='\0';
                              count=0;
                        }
                        count=0;//这句话不管count>max成不成立,只有遇到空格了count就需要归零
                }
      }
                              if(count>max)//最后一个单词也要判断一下
                        {
                              max=count;
                              strcpy(c,b);
                              c='\0';
                              count=0;
                        }
      puts(c);
}
int main()
{
      char a;
      printf("请输入一个字符串:");
      gets(a);
      fun(a);
      return 0;
}

代码还有一个错误现在改过来了

严凯 发表于 2021-3-8 18:55:12

洋洋痒 发表于 2021-3-8 15:13
代码还有一个错误现在改过来了

我不知道是不是我的编译器问题,编译器是学校老师搞得盗版VC2010
我复制你的,就直接报错了
页: [1]
查看完整版本: 函数