黑马程序员技术交流社区

标题: 5、 在一个已知的字符串中查找最长单词,假定字符串中只... [打印本页]

作者: 胡铭    时间: 2014-4-27 11:53
标题: 5、 在一个已知的字符串中查找最长单词,假定字符串中只...
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*什么的


作者: 一只小菜鸟    时间: 2014-4-27 12:35
本帖最后由 一只小菜鸟 于 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. }
复制代码




作者: 董月峰    时间: 2014-4-27 17:02
  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;
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2