2、CString与string借助char *互转

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()));