我想用&
替换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(), "&", "&");
std::cout << "str is" << st;
return 1;
}
它显示错误,std :: replace无法替换字符串,但它只适用于字符。 我知道我仍然可以有一个逻辑来完成我的工作,但是有没有干净的C ++方法呢?是否有任何内置功能?
答案 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("\\&"), "&");
std::cout << "str is" << st;
return 1;
}