我想知道如何逐个更改,我想将1
替换为:x:
这是我的代码:
string stng;
printf("Enter with number:");
cin >> stng;
replace(stng.begin(), stng.end(), '1', 'x');
cout << stng << endl;
正如您所看到的,我正在使用此代替:replace(stng.begin(), stng.end(), '1', 'x');
但是只要我1
只能更改x
,我就想替换为:x:
答案 0 :(得分:0)
也许你可以试试这样的事情
string stng;
printf("Enter with number:");
cin >> stng;
replace(stng.begin(), stng.end(), '1', ":x:");
cout << stng << endl;
答案 1 :(得分:0)
这是我使用的。它将需要std::string
并将from
输入字符串的所有匹配项替换为to
输入字符串。
std::string replaceAll(const std::string & s, const std::string & from, const std::string & to)
{
string res(s);
string::size_type n1 = from.size();
string::size_type n2 = to.size();
string::size_type i = 0;
string::size_type j = 0;
while ((i = res.find(from, j)) != string::npos)
{
res.replace(i, n1, to);
j = i + n2;
}
return res;
}
答案 2 :(得分:0)
使用replace
的{{1}}成员函数,您可以做得更好。
std::string
你的工作已经完成!!!
答案 3 :(得分:0)
您可以使用此split
函数将'1'
分隔为标记来拆分字符串。
然后使用以下函数将":x:"
合并为字符串
std::string merge(const std::vector<std::string>& v, const std::string& glue)
{
std::string result;
if(v.empty()) { return result; }
result += v[0];
for(size_t i = 1; i != v.size() ; i++)
{
result += glue;
result += v[i];
}
return result;
}
std::string replace(const std::string& src, char delim, const std::string& glue)
{
return merge(split(src, delim), glue);
}
直播是here