用另一个字符序列替换C ++ std :: string中的字符/字符序列

时间:2017-10-22 17:19:30

标签: c++ string c++11 replace stdstring

我想用&替换std::string中所有出现的&。这是代码片段 codelink

#include <algorithm>
#include <string>
#include <iostream>
int main()
{
    std::string st = "hello guys how are you & so good & that &";
    std::replace(st.begin(), st.end(), "&", "&amp;");
    std::cout << "str is" << st;
    return 1;
}

它显示错误,std :: replace无法替换字符串,但它只适用于字符。 我知道我仍然可以有一个逻辑来完成我的工作,但是有没有干净的C ++方法呢?是否有任何内置功能?

1 个答案:

答案 0 :(得分:3)

regex replace可以让这更容易:

#include <algorithm>
#include <string>
#include <iostream>
#include <regex>

int main()
{
    std::string st = "hello guys how are you & so good & that &";
    st = std::regex_replace(st, std::regex("\\&"), "&amp;");
    std::cout << "str is" << st;
    return 1;
}