CString和string的互换

首先,CString和string都是C++中的字符串模板类,string作为标准模板类(STL)定义的字符串类,已经纳入C++标准之中;而CString(typedef CStringT > CString)是Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANSI)、wchar_t(unicode)、TCHAR(ANSI与unicode均可)。

再说它们的构造。string几乎可以从所有的字符串构造而来,包括CString和char*;而CString只能从基本的字符串变量构造而来,如char*。

CString和string的相互转换:

CString to std::string:

方法一:
USES_CONVERSION;
CString CStr;
CStr = _T("CString to string");
char* temp_char = W2A(CStr);
std::string str = temp_char;

方法二:
CString CStr;
CStr = _T("CString to string");
std::string str = CStr.GetBuffer(0);

std::string to CString:

std::string str = "string to CString";
CString CStr = str.c_str();
posted @ 2012-11-20 15:28  @不系之舟  阅读(216)  评论(0编辑  收藏  举报