Я ищу заменить все алгоритм, который заменил все вхождения подстроки после определенного положения. Пока у меня есть подход replace all copy
. Самый удобный способ сделать это без выделения новой строки, кроме this one? Существует ли удобный способ сделать это с помощью boost?Заменить все вхождения строки поиска после определенной позиции
#include <iostream>
#include <string>
#include <boost/algorithm/string/replace.hpp>
int main() {
std::string str = "1234 abc1234 marker 1234 1234 123 1 12 134 12341234";
const std::string marker("marker");
size_t pos = str.find(marker);
if (pos == std::string::npos) {
return 0;
}
pos += marker.length();
std::string str_out(str, 0, pos);
boost::algorithm::replace_all_copy(std::back_inserter(str_out), str.substr(pos, std::string::npos), "12", "XXXX");
std::cout << str << std::endl;
std::cout << str_out << std::endl;
}