こんにちは、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
}
ゼロに設定して呼び出しているに違いありません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
}