2009-06-18 60 views
2

假設我有一個CString變量,其中攜帶字符串「Bob Evans」。我想從位置4複製到原來的CString到一個新的CString的結束,但我無法找到語義的例子爲這樣的:mfc複製CString的某些部分

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

我也想過複製變量到STL C++字符串,但在轉換方面實現這一點並不那麼容易。你對此有何建議?我可以將字符串存儲在一個STL字符串中,但是這將是最後一招,因爲我不想重構很多代碼,只是將數據存儲在STL字符串而不是CString中。提前致謝。

回答

7
newStr = original.Mid(4); 
+0

謝謝。 Mid功能對我來說效果很好。很尷尬的是,爲什麼微軟將這個函數命名爲Mid()。 – stanigator 2009-06-18 20:08:22

0

CString轉換爲標準字符串並不難;唯一的問題是如果你爲你的MFC程序使用默認設置,你可能會使用Unicode。這意味着您需要使用std::wstring而不是std::string

我還沒有測試過這個,但我認爲默認轉換會讓這個'正常工作'。否則將CString強制轉換爲LPCTSTR。

std::wstring copyOfOriginal(original);