我有一个字符串,其最后一部分(后缀)需要多次更改,我需要生成新字符串。我正在尝试使用 ostringstream 来执行此操作,因为我认为使用流将比字符串连接更快。但是当前一个后缀大于后一个时,它就搞砸了。流也剥离了空字符。
#include<iostream>
#include<sstream>
using namespace std;
int main()
{
ostringstream os;
streampos pos;
os << "Hello ";
pos = os.tellp();
os << "Universe";
os.seekp(pos);
cout<< os.str() << endl;
os << "World\0";
cout<< os.str().c_str() << endl;
return 0;
}
输出
Hello Universe
Hello Worldrse
但我想要Hello World
。我该怎么做呢?有没有其他方法可以更快地做到这一点?
编辑:
附加std::ends
作品。但想知道它在内部是如何工作的。也想知道是否有更快的方法来做同样的事情。