1
我創建了一個替換字符串的函數。字符串替換中的C++錯誤
它看起來像這樣:
void replace_with(wstring& src, const wstring& what, const wstring& with)
{
if (what != with) {
wstring temp;
wstring::size_type prev_pos = 0, pos = src.find(what, 0);
while (wstring::npos != pos) {
temp += wstring(src.begin() + prev_pos, src.begin() + pos) + with;
prev_pos = pos + what.size();
pos = src.find(what, prev_pos);
}
if (!temp.empty()) {
src = temp + wstring(src.begin() + prev_pos, src.end());
if (wstring::npos == with.find(what)) {
replace_with(src, what, with);
}
}
}
}
但是,如果我的字符串是大小== 1,「什麼」是exactely字符串,它不會取代它。
例如
wstring sThis=L"-";
replace_with(sThis,L"-",L"");
...不會替代 「 - 」。
我看不出我出錯的地方。
有人可以幫忙嗎?
如果這純粹是一種學習練習,不錯,但除此之外,爲什麼不使用['std :: string :: replace'](http://en.cppreference.com/w/cpp /串/ basic_string的/替換)? – BoBTFish