Avatar ·

如何在 C++ 中替换字符串中的所有字符出现?(std::string)

大家好!我刚开始学习 C++,遇到了一个问题:我需要将字符串中的所有空格替换为下划线。假设有一个字符串 "Hello World from C++",我想得到 "Hello_World_from_C++"。 我知道在 C# 中有 `.Replace()` 方法可以一行搞定。在 Python 中也有 `str.replace()`。那么在 C++ 中怎么做呢?我使用的是 `std::string`。 我尝试写了一个循环,但没成功。以下是我失败的代码: ```cpp #include #include int main() { std::string str = "Hello World from C++"; for (size_t i = 0; i < str.length(); i++) { if (str[i] == ' ') { str[i] = '_'; } } std::cout << str << std::endl; return 0; } ``` 这段代码能工作,但非常原始。有人告诉我还有更正确和高效的方法,特别是当字符串很大或者需要替换的不是单个字符而是一串字符时(例如,将所有 "abc" 替换为 "xyz")。