目录
- 1.从位置 pos 开始,替换长度为 len 的子字符串为 str。
- 2.用字符串 str 替换迭代器范围 [i1, i2) 内的内容。
- 3.从位置 pos 开始,替换长度为 len 的子字符串为 str 中从 subpos 开始长度为 sublen 的子字符串。
- 4.用迭代器范围 [first, last) 内的内容替换迭代器范围 [i1, i2) 内的内容。
std::string 中的 replace 函数用于替换字符串中的一部分内容。它有多个重载版本,可以用于不同的替换需求。
1.从位置 pos 开始,替换长度为 len 的子字符串为 str。
// void replace(size_t pos, size_t len, const std::string& str);
std::string s = "Hello, world!";
s.replace(7, 5, "C++"); // 从位置7开始,替换长度为5的子字符串为"C++"
// 结果为 "Hello, C++!"
2.用字符串 str 替换迭代器范围 [i1, i2) 内的内容。
// void replace(const_iterator i1, const_iterator i2, const std::string& str);
std::string s = "Hello, world!";
auto start = s.begin() + 7;
auto end = start + 5;
s.replace(start, end, "C++"); // 用"C++"替换迭代器范围[7, 12)内的内容
// 结果为 "Hello, C++!"
3.从位置 pos 开始,替换长度为 len 的子字符串为 str 中从 subpos 开始长度为 sublen 的子字符串。
- pos:要替换的起始位置
- len:要替换的字符数
- str:用来替换的字符串
- subpos:替换字符串的起始位置
- sublen:替换的字符数
// void replace(size_t pos, size_t len, const std::string& str, size_t subpos, size_t sublen);
std::string s = "Hello, world!";
s.replace(7, 5, "C++ is a programming language", 0, 6);
// 从位置7开始,替换长度为5的子字符串为"C++"
// 结果为 "Hello, C++ is!"
4.用迭代器范围 [first, last) 内的内容替换迭代器范围 [i1, i2) 内的内容。
// void replace(const_iterator i1, const_iterator i2, InputIt first, InputIt last);
std::string s = "Hello, world!";
std::string new_content = "C++";
s.replace(s.begin() + 7, s.begin() + 12, new_content.begin(), new_content.end());
// 用"C++"替换迭代器范围[7, 12)内的内容
// 结果为 "Hello, C++!"
何时杖尔看南雪,我与梅花两白头。
2024年3月22日21:00:42