smartfriend_ 2022-07-23 19:50 采纳率: 20%
浏览 20

为何要有两次范围for循环?

最近在学习C++的string和vector类,现在对这两样的使用比较模糊,我不太明白在toupper那里为什么要有两层的范围for循环,不能理解两个for循环是在干嘛

#include <iostream>
#include <string>
#include <cctype>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::vector;
using std::string;

int main()
{
    vector<string> v;
    string s;

    while (cin >> s)
    {
        v.push_back(s);
    }

    for (auto& str : v)
    {
        for (auto& c : str)
        {
            c = toupper(c);
        }
    }

    for (auto i : v)
    {
        cout << i << endl;
    }
    return 0;
}

希望得到解答,谢谢!原题如配图所示
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/320400775856192.jpg "#left")
  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-07-23 19:59
    关注

    因为vector中存储的是字符串,而字符串是字符数组,双循环是需要对字符进行大小写转换
    第一层循环遍历vector中的每个字符串str
    第二层循环遍历字符串str中的每个字符c
    然后toupper对c字符进行大写字符转换

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月23日

悬赏问题

  • ¥20 如何再GIS用海岸线建立缓冲区
  • ¥15 codeblock遇到问题了,求帮助😭
  • ¥15 Qt6.8.0加载网页MSVC2022
  • ¥15 360浏览器m2的这个值
  • ¥15 国内有哪些厂商做automlops的?
  • ¥15 skynet pb mysql
  • ¥15 笔记本外接显示器分辨率太低各种方法都用过了调不高
  • ¥15 Redstone R0697-F00 D2020 交换机 OS
  • ¥50 H5+js 动态数字画廊怎么做?
  • ¥20 外向内全景图像拼接相关项目和论文咨询