在我能想到的每种语言中,除了C ++之外,函数Replace实际上替换了字符串的所有部分,而C ++的字符串类不支持如下的简单操作:
string s = "Hello World";
s = s.Replace("Hello", "Goodbye");
echo s; // Prints "Goodbye World"
这似乎是任何类型的字符串替换函数的最常见用法,但在C ++中似乎没有标准的替换函数。我在这里错过了什么吗?
编辑:我知道在标准库中没有这样的内置替换函数 - 我想知道是否有一个或多或少的标准实现由标准算法或类似的东西。< / p>答案 0 :(得分:9)
你没有遗漏任何东西,它不在标准库中
您可以使用find()
,replace()
等自行编写,也可以使用Boosts replace_all()
中的string algorithm library等实现。
答案 1 :(得分:0)
这不完全相同,但有一种替换方法:
#include <iostream>
#include <string>
using namespace std;
int main( void )
{
string s = "Hello World";
s.replace(0, 5, "Goodbye");
cout << s << endl;
return 0;
}
您可以使用string :: find,string :: replace和一个小循环
轻松编写替换