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();