Boost で文字列の置換

boost::algorithm::replace_all_copy あたりを使うのが楽そう。

[ソース]

#include <boost/algorithm/string.hpp>
#include <iostream>

int
main(){
    std::string source = "homuhomuhomu";
    
    // 結果をコピーして返す
    auto result1 = boost::algorithm::replace_all_copy(source, "homu", "mado");
    std::cout << result1 << std::endl;
    std::cout << source << std::endl;

    
    // 破壊的に変更する
    boost::algorithm::replace_all(source, "homu", "mado");
    std::cout << source << std::endl;

    return 0;
}

[出力]

madomadomado
homuhomuhomu
madomadomado

[boost]

  • ver 1.49.0