std::string 实现字符串 replace 函数
时间: 2023-11-15 20:06:40 浏览: 173
字符串子串替换函数
可以使用 string::find 和 string::replace 函数来实现字符串 replace 函数,以下是一个示例实现:
```c++
#include <iostream>
#include <string>
void replaceAll(std::string& str, const std::string& oldStr, const std::string& newStr) {
size_t pos = 0;
while ((pos = str.find(oldStr, pos)) != std::string::npos) {
str.replace(pos, oldStr.length(), newStr);
pos += newStr.length();
}
}
int main() {
std::string str = "Hello, World!";
std::cout << "Original string: " << str << std::endl;
replaceAll(str, "World", "John Doe");
std::cout << "Replaced string: " << str << std::endl;
return 0;
}
```
输出:
```
Original string: Hello, World!
Replaced string: Hello, John Doe!
```
该示例中,replaceAll 函数接受三个参数:一个要修改的字符串,一个要替换的子字符串和一个新的子字符串。它使用 string::find 函数来查找要替换的子字符串的位置,并使用 string::replace 函数将其替换为新的子字符串。另外,由于 string::replace 函数会改变原始字符串的长度,因此在每次替换后需要将查找位置增加新子字符串的长度。
阅读全文