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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

1.遍历字符串数组
2.非空格和/0的字符长度就是单词长度 用计数器保存单词长度
3.通过比较 用临时变量 保存最长单词长度
4.用临时变量 保存最长单词起始位置
5.遍历字符串数组 用printf函数 从临时变量保存的最长单词起始位置开始输出到空格自动停止

*/
#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Your forever friend lifts you up in spirits and makes that dark and empty world suddenly seem bright and full";
    int maxCount = 0; // 记录最大长度
    int index = 0;    // 记录单词开始字符下标
    for (int i = 0; i < strlen(str); i++) {
        int count = 0; // 单词长度计数器
        while (str[i] != ' ' && str[i]) { // 字符不是空格也不是\0
            i++;
            count++;
        }
        if (count > maxCount) {
            maxCount = count;
            index = i- maxCount-1;
        }
    }
    printf("最长单词是:");
    for (int i = index; i <= index + maxCount; i++){
        printf("%c", str[i]);
    }
    printf("\nThe end\n");
    return 0;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马