如何在 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")。