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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在一个已知的字符串中查找最长单词, 假定字符串中只含字母和空格,空格用来分隔不同单词。(C语言)
xcode报错
    for (int i=0; i<strlen(c); i++) {
#include <stdio.h>这段代码黄色报错求教
源代码在下面
int main(int argc, const char * argv[]) {
    // 定义字符串
    char c[]=" hei ma ";
    //定义变量,a,b,len
    //b:最长单词前面空格的下标,a:最近出现的空格或'\0',
    //len表示长度
    int a = 0,b = 0,len = 0;
    //用循环语句进行判断
    for (int i=0; i<strlen(c); i++) {
        if (c[i]==' '||c[i]=='\0') {
            if (len<i-a) {
                len=i-a;
                b=i-len;
            }
            a=i;
        }
    }
    printf("最长单词是:");
   
    for (int i = b+1; c[i]!=' ' && c[i] != '\0'; i++) {
        
        printf("%c",c[i]);

  
    }
}

   

评分

参与人数 1黑马币 +3 收起 理由
小北北 + 3 我也是这题

查看全部评分

9 个回复

倒序浏览
楼主参考下:
/*在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
        char sentence[1024];//定义字符数组存储读入的句子
        size_t length = 0;
        int i, j, maxLen = 0;
        int start, end;//记录最长单词的起始、结束位置
        fgets (sentence, 1024, stdin);//读入一个句子
        length = strlen (sentence);

        for (i = 0, j = 0; i < length; i++)
        {
                j = i;
                while (sentence[i] != ' ' && sentence[i] != '\0')
                        i++;
                if (maxLen < (i - j))
                {
                        maxLen = i - j;
                        start = j;
                        end   = i - 1;
                }

        }
        for (start; start <= end; start++)
                printf("%c", sentence[start]);

        return 0;
}
楼主是报的哪一期?
回复 使用道具 举报
strlen需要引用一个头文件 string.h
回复 使用道具 举报
#include <string.h>
回复 使用道具 举报
三楼正解
回复 使用道具 举报
代码中使用字符串所以需要导入# include <string.h>头文件
回复 使用道具 举报
wwf707542865 发表于 2015-11-3 21:54
strlen需要引用一个头文件 string.h

发现了,谢谢指教
回复 使用道具 举报
poxiao 发表于 2015-11-3 21:47
楼主参考下:
/*在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。* ...

准备下个月5号的不过现在基础自学的还不怎样
回复 使用道具 举报

谢谢,我自学没几天基础还不行
回复 使用道具 举报
6666666666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马