std :: string :: replace标准实现?

时间:2010-02-13 01:07:11

标签: c++ string

在我能想到的每种语言中,除了C ++之外,函数Replace实际上替换了字符串的所有部分,而C ++的字符串类不支持如下的简单操作:

string s = "Hello World";
s = s.Replace("Hello", "Goodbye");
echo s; // Prints "Goodbye World"

这似乎是任何类型的字符串替换函数的最常见用法,但在C ++中似乎没有标准的替换函数。我在这里错过了什么吗?

编辑:我知道在标准库中没有这样的内置替换函数 - 我想知道是否有一个或多或少的标准实现由标准算法或类似的东西。< / p>

2 个答案:

答案 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和一个小循环

轻松编写替换
相关问题