你好我在c ++中修剪字符串有问题。它在最后添加了一些奇怪的字符 字符串。
string& Napis::subst(char cold, char cnew) {
string * s = new string(data);
replace(s->begin(),s->end(), cold, cnew);
return *s; // takes back string s with changed sign
}
答案 0 :(得分:1)
我打赌你在subst
设置为零时调用cnew
。您希望这会删除字符,但这不是它的作用。正如其名称所示,它用零替换它们。
怎么样:
string Napis::subst(char cold, char cnew) {
assert(cnew != 0);
string s = data;
replace(s.begin(), s.end(), cold, cnew);
return s; // takes back string s with changed sign
}