当前位置:C++技术网 > 资讯 > string与Cstring转化小解

string与Cstring转化小解

更新时间:2018-12-18 18:19:47浏览次数:1+次

string与Cstring转化:
CString可以转换为基本类型LPCTSTR,如果你不懂这个类型,我写了一篇关于这个类型的文章《如何理解LPCTSTR类型?》你可以看看。LPCTSTR根据项目编码可以使const char*或者const wchar_*(也就是ANSI与Unicode编码);string可以用c_str()转换为const char*,stringw(Unicode编码)可以用c_str()转换为const   
w_char*。而cstring和string/w都重载了=赋值操作符,可以把char*或者wchar_t*字符串赋值给cstring或者string/w类型的变量,或者调用其构造函数。

string to CString比较简单

string str="abcde";
CString cstr(str.c_str());///赋值操作相当于下面这句代码:CString cstr;cstr=str.c_str();

CString to string,要看你的CString用的是UNICODE还是非UNICODE,

非UNICODE就简单了
CString cs="abcde";
string str(cs.GetBuffer(cs.GetLength()));//////意思同上,赋值操作而已

但是你得记住GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间

Unicode编码情况下:
CStringW strw = _T("test");
CStringA stra(strw.GetBuffer(0));
strw.ReleaseBuffer();
std::string imgpath=stra.GetBuffer(0);
stra.ReleaseBuffer();