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

C++中如何统计字符串数组元素的字符数量?

在C++中实现字符串长度判断与输入限制

首先,你的代码存在几处需要修正的问题,同时可以直接用C++标准库的方法实现字符串长度判断:

1. 核心方法:获取字符串长度

C++的std::string类提供了两个成员方法可直接获取字符数量:

  • size():返回字符串中字符的个数
  • length():和size()功能完全一致,是为兼容早期代码保留的方法

所以你需要的判断逻辑可以直接写成:if (heard[i].size() > 100)

2. 修正原代码的其他问题

原代码还有几处不符合C++标准的地方:

  • C++标准不支持std::string[count]这种变长数组(部分编译器如GCC支持扩展,但不推荐),建议用std::vector<std::string>动态存储字符串
  • cout未加std::前缀,会导致编译错误
  • 原代码输入过长时仅提示,但没有让用户重新输入的逻辑,需要调整循环结构

修正后的完整代码

#include <iostream>
#include <string>
#include <vector>  // 引入vector头文件

int main ()
{
    int count;
    std::cout << "How many things do you hear? ";
    std::cin >> count;
    // 用vector替代变长数组,符合C++标准
    std::vector<std::string> heard(count);
    
    for (int i = 0; i < count; )  // 这里去掉i++,输入错误时不递增索引
    {
        std::cout << "Enter what you hear: ";
        std::cin >> heard[i];
        
        if (heard[i].size() > 100) 
        {
            std::cout << "Too many letters try again: ";
        }
        else
        {
            i++;  // 输入合法时再移动到下一个元素
        }
    }
    
    // 可选:验证输入结果
    std::cout << "\nYou entered:\n";
    for (const auto& s : heard)
    {
        std::cout << s << " (length: " << s.size() << ")\n";
    }
    
    return 0;
}

说明

  • 使用std::vector<std::string>可安全地动态创建指定数量的字符串对象,兼容所有标准C++编译器
  • heard[i].size()直接返回当前字符串的字符数,判断是否超过100非常直观
  • 调整循环逻辑后,当用户输入过长时,会停留在当前索引位置,直到输入符合要求为止

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:35:36