0

こんにちは、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
}
4

1 に答える 1

1

ゼロに設定して呼び出しているに違いありませんsubstcnewあなたはこれが文字を削除することを期待しています、しかしそれはそれがすることではありません。その名前が示すように、それらをゼロに置き換えます。

どうですか:

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
}
于 2012-06-24T11:01:11.000 に答える