2、CString与string借助char *互转
CString是MFC中的类,MFC前端界面中获得的字符串是CString类。标准C/C++库函数是不能直接对CString类型进行操作的。
string是C++中的类。
安全性 CString > string > char*;
灵活性 CString > string >char*;
可移植性 char* = string > CString
char *p = "char* 转 CString"; CString str = CString(p); MessageBox(str); CString str2 = TEXT("CString 转 char *"); CStringA tmp; //CStringA中转下比较稳定可靠。不可以写成CStringA tmp=str2; tmp = str2; char *p2 = tmp.GetBuffer(); MessageBox(CString(p2)); /*注意,string是C++中的,需要 #include<string> using namespace std;*/ string s = "string 转 char *"; char *p3 = new char[s.size() + 1]; strcpy_s(p3, s.size() + 1, s.c_str());//防止s消失后,指针变成野指针。也防止了通过指针更改数组中的值。 MessageBox(CString(p3)); char *p4 = "char * 转 string"; string s1; s1= p4; MessageBox(CString( s1.c_str()));