引言
CString是在MFC编程中常用到的数据类型,它是MFC中的一个类,很大程度上简化了MFC中的许多字符串的操作。而一些标准C/C++库函数是不能直接对CString类型进行操作的,所以我们经常遇到将CString类型转化char*等等其他数据类型的情况。
char * 转换
将CString 转换为 char *
CString cstr="1234"; char* ptemp=cstr.Getbuffer(cstr.GetLength()); cstr.Releasebuffer();
将char * 转换为 CString
char* pData = "1234"; CString strData(pData); // 直接赋值 CString strData = pData; / CString strData("1234");
CString 转换
标准C中是不存在string类型的,string是标准C++扩充字符串操作的一个类。因此一般利用char *作为中间媒介来将CString转换为string。string类型变量转换为const char*类型,然后就可以直接给CString类型赋值了
将string转换为CString
CString str; string s; str = CString(s); //直接复制丢给构造会自己转换 或 str = s.c_str();
将CString转换为string
CString cStr = "adsad"; string str = cStr; //可以直接赋值转换
将char * 转换为string
string s(char *); 在不是初始化的地方最好还是用assign().
将string转换为char *
char *p = string.c_str();
string aa("aaa"); char *c=aa.c_str(); string mngName; char t[200]; memset(t,0,200); strcpy(t,mngName.c_str());以上转换均为ANSI编码环境,如果字符串中有中文在unicode编码下不行~