Avatar ·

如何在C++中处理字符串?

大家好!我开始学习C++,在处理字符串时遇到了问题。我试图编写一个简单的程序,读取用户名,然后将该名字转换为大写后输出问候语。但代码的运行结果与预期不符。

以下是我尝试的代码:

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

int main() {
    std::string name;
    std::cout << "请输入名字:";
    std::cin >> name;
    
    for (char c : name) {
        c = std::toupper(c);
    }
    
    std::cout << "你好," << name << "!" << std::endl;
    return 0;
}

问题在于名字输出时仍保持原始大小写,而我期望它变成大写。看起来for each循环并没有修改原始字符串。我也尝试过使用std::getline代替std::cin >>,但问题依旧。

预期结果:如果我输入"j