首先,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();