如何从给定位置开始用另一个字符串覆盖一个字符串的一部分?

时间:2012-05-17 18:05:35

标签: c++ string

我的意思是在编辑器中使用插入键的方式。

所以有这样的字符串:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

效果将是:

~~~~~~~~~~Hello!~~~~~~~~~~~~~~~~~~

即不改变字符串的长度。

2 个答案:

答案 0 :(得分:3)

使用std::string的{​​{3}}成员函数的多次重载之一覆盖字符串的一部分,例如:

    string str = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";
    string rep = "Hello!";
    cout << str.replace(5, rep.size(), rep) << endl;

您可以在ideone replace播放此示例。

答案 1 :(得分:0)

最简单的解决方案可能是使用std::copy 适当的迭代器:

std::copy( newText.begin(), newText.end(), str.begin() + n );

确保目标字符串足够大。