CString类型转换操作详解

引言

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编码下不行~





猜你喜欢

转载自blog.csdn.net/sinat_22991367/article/details/79435837