У меня есть строка, последняя часть которой (суффикс) должна быть изменена несколько раз, и мне нужно сгенерировать новые строки.Я пытаюсь использовать 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
работает.Но интересно, как это работает внутри.Также хотелось бы знать, есть ли более быстрые способы сделать то же самое.