mfc复制CString的某些部分

时间:2009-06-18 18:58:08

标签: c++ mfc stl cstring

假设我有一个携带字符串“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());

我还考虑过将变量原始复制到STL C ++字符串,但在转换方面实现这一点并不是那么容易。你对此有何建议?我可以将字符串存储在STL字符串中开始,但这将是最后的手段之一,因为我不想重构大量代码只是为了将数据存储在STL字符串而不是CString中。提前谢谢。

2 个答案:

答案 0 :(得分:7)

newStr = original.Mid(4);

答案 1 :(得分:0)

CString变成标准字符串并不是那么难。唯一的故障是,如果你采用MFC程序的默认设置,你可能正在使用Unicode。这意味着您需要使用std::wstring代替std::string

我没有对此进行过测试,但我认为默认转换会让这个'正常工作'。否则将CString强制转换为LPCTSTR。

std::wstring copyOfOriginal(original);