You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改C++单词计数程序实现统计输入文本最长、最短单词及字符数

修改现有循环实现最长/最短单词统计

实现思路

完全可以在原有循环的基础上新增变量实现需求,不需要改动整体逻辑:

  • 新增4个变量,分别记录当前最长单词、最长单词长度、当前最短单词、最短单词长度
  • 每次读入新单词后,除了累加单词计数,分别和当前最长、最短长度做对比,匹配条件就更新对应变量
  • 输出前判断是否有有效单词输入,避免空输入触发异常

修改后的完整代码

#include <iostream>
#include <string>
#include <climits>

using namespace std;

int main() {
    int count_words = 0;
    string word;
    string longest_word, shortest_word;
    size_t longest_len = 0;
    size_t shortest_len = INT_MAX;

    cout << "Type a text:" << endl;

    while (cin >> word)
    {
        count_words++;
        size_t current_len = word.size();
        // 更新最长单词信息
        if (current_len > longest_len) {
            longest_len = current_len;
            longest_word = word;
        }
        // 更新最短单词信息
        if (current_len < shortest_len) {
            shortest_len = current_len;
            shortest_word = word;
        }
    }
    
    cout << "The text contains " << count_words << " words." << endl;
    if (count_words > 0) {
        cout << "The shortest word is \"" << shortest_word << "\" with " << shortest_len << " characters." << endl;
        cout << "The longest word is \"" << longest_word << "\" with " << longest_len << " characters." << endl;
    } else {
        cout << "No valid words entered." << endl;
    }

    return 0;
}

注意事项

如果存在多个长度相同的最长/最短单词,上述代码会保留第一个出现的对应单词;如果需要保留最后一个出现的,把判断条件里的>改成>=、<改成<=即可。

内容的提问来源于stack exchange,提问作者leun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:06:04