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

Replace a character/sequence of characters in a C++ std::string with another sequence of characters

我想用 & 替换 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++ 方法可以做到这一点吗?有内置函数吗?

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;
}