2009-06-18 58 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);