1. ホーム
  2. c++

[解決済み] CString.Replace 複数文字の置き換え

2022-02-19 22:17:58

質問

CString.replaceメソッドを使おうとしていますが、文字列の残りが置換されていないようです。

tmpStr.Replace(_T('in.'), _T(' '));

がその具体的な行です。CString tmpStrの中の文字列 "in." のインスタンスをすべて削除したいのです。しかし、それは "in." の 'i' をスペースに置き換えるだけであるようです。残りはそのままです。

文字列を文字列に置き換える方法はありますか?

どのように解決するのですか?

意図したオーバーロードを呼び出していない。 CString::Replace には2文字を受け取るオーバーロードがあり、それがこの関数呼び出しで呼び出されるものです。変更 'in.'"in." (シングルクォートではなくダブルクォートであることに注意してください)。同様に ' '" " .

'in.' は複数文字のリテラルで、これをどのように解釈するかは実装で定義されています。VCはこの文字列を i .