//定义三种类型
CString CString1="CString";
std::string string1="string";
CHAR * char1="char1";
//窄字符串集:
//一、CString 字串转 string ,char*
string1=CString1;
char1=CString1.GetBuffer();
CString1.ReleaseBuffer();//释放掉字串缓冲区
//二、string 转CString char*
string1="string1";
CString1=string1.data();
//char1=string1.data();//错误的,返回类型必须定义为const
new char[string1.length()+1];
strcpy(char1,string1.data());
三、char* 转CString ,string
char1="char1";
CString1=char1;
string1=char1;
//宽字符集:
CString CString1=L"CString"; //字符串前面需要加上L
std::wstring string1=L"string";
WCHAR * char1=L"char1"; //CHAR*变为WCHAR*
//一、CString 字串转 string ,char*
string1=CString1;
char1=CString1.GetBuffer();
CString1.ReleaseBuffer();//释放掉字串缓冲区
//二、string 转CString char*
string1=L"string1";
CString1=string1.data();
//char1=string1.data();
new WCHAR[string1.length()+1];
wcscpy(char1,string1.data()); //内存拷贝函数也改变了。
//三、char* 转CString ,string
char1=L"char1";
CString1=char1;
string1=char1;
//使用宏兼容窄字集和宽字集
CString CString1= _T("CString"); //对字符串使用_T可以解决字符集的问题
std::string string1=_T("string");
TCHAR * char1=_T("char1"); //定义时使用TCHAR*
//一、CString 字串转 string ,char*
string1=CString1;
char1=CString1.GetBuffer();
CString1.ReleaseBuffer();//释放掉字串缓冲区
//二、string 转CString char*
string1=_T("string1");
CString1=string1.data();
//char1=string1.data();
new TCHAR[string1.length()+1];
strcpy(char1,string1.data()); //这里注意,函数不能改变,也就是说,代码里面还需要使用其它宏进行判断。
//三、char* 转CString ,string
char1=_T("char1");
CString1=char1;
string1=char1;
C++中,CString,string,char*的相互转换
最新推荐文章于 2024-05-17 16:35:59 发布