A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

5、 在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。(C语言)


char* function(char* str)
{
        int i,j,len,maxlen,x,y,maxx,maxy;
        char s[40];
        len = strlen(str);
        maxlen=0;
        x=-1;
        y=0;

        for(i=0;i<len;i++)
        {
                if(str[i]==' ')
                {
                        if(y>x)
                        {
                                x=i;
                        }
                        else
                        {
                                y=i;
                                if(y-x>maxlen)
                                {
                                        maxlen=y-x;
                                        maxx=x;
                                        maxy=y;
                                }
                        }
                }
        }
        j=0;
        for(i=maxx+1;i<maxy;i++,j++)
        {
                s[j]=str[i];
        }
        return s;
}
总是报错,说function函数返回值不能为char*什么的

2 个回复

倒序浏览
本帖最后由 一只小菜鸟 于 2014-4-27 13:04 编辑

抱歉。。。。。。
  1. char *test() {;
  2.     char *c = "hello";   //只能返回这样定义的字符串吧。。。
  3.     return c;
  4. }
  5. int main() {
  6.     printf("%s", test()); //hello
  7. }
复制代码



回复 使用道具 举报
  1.         j=0;
  2.         for(i=maxx+1;i<maxy;i++,j++)
  3.         {
  4.                 s[j]=str[i];
  5.         }
  6.        s[maxlen] = '\0';
  7. // 楼主把这段代码填个字符串结尾试试
  8.         return s;
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马