黑马程序员技术交流社区

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

作者: linexs    时间: 2015-11-17 12:54
标题: 在一个已知的字符串中查找最长单词,假定字符串中只含...
/*
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;
}





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