2

文字列 "Bob Evans" を持つ CString 変数があるとします。位置 4 から元の CString の最後までを新しい CString にコピーしたいのですが、これのセマンティクスの例を見つけるのに苦労しています。

CString original("Bob Evans");
// Below is what I'm trying to do
// CString newStr = original.copy(4, original.GetLength());

変数originalを STL C++ 文字列にコピーすることも考えましたが、これを達成することは、変換に関してもそれほど簡単ではありません。これに関してあなたのアドバイスは何ですか?最初に文字列を STL 文字列に格納することもできますが、データを CString ではなく STL 文字列に格納するためだけに多くのコードを再構築したくなかったため、これは最後の手段の 1 つです。前もって感謝します。

4

2 に答える 2

7
newStr = original.Mid(4);
于 2009-06-18T19:00:02.993 に答える
0

CStringa を標準の文字列に変換するのはそれほど難しくありません。唯一の欠点は、MFC プログラムのデフォルト設定を使用している場合、おそらく Unicode を使用していることです。つまり、std::wstring代わりにstd::string.

私はこれをテストしていませんが、デフォルトの変換ではこれが「うまくいく」と思います。それ以外の場合は、CString を LPCTSTR にキャストします。

std::wstring copyOfOriginal(original);
于 2009-06-18T19:10:03.150 に答える