发新帖

[C/VC/C++] char*, string, CString, String^的相互转换

零下一度 2019-8-9 1092


从char*转换:

        char *chars = "Hello";

    1、从char*到string:      string s(chars);
    2、从char*到CString:   CString s(chars);
    3、从char*到String^:   String ^s = gcnew String(chars);


从string转换:
   

    string str("Hello");

    1、从string到char*:      char chars[64]; strcpy_s(chars, str.c_str());   
    2、从string到CString:   CString s(str.c_str());
    3、从string到String^:   String ^s = gcnew String(str.c_str());

 

从CString转换:

    CString str("Hello");

    1、从CString到char*:      char chars[64]; strcpy_s(chars, str);   
    2、从CString到string:     

      string s(str);  

      std::string s= (CStringA)str;


    3、从CString到String^:   String ^s = gcnew String(str);

    stringstr="ksarea";
    CStringcstr(str.c_str());//或者CString cstr(str.data());初始化时才行
    cstr=str.c_str();或者cstr=str.data();
    str=cstr.GetBuffer(0); //CString -> string
    cstr.format("%s", str.c_str()); //string->CString
    cstr.format("%s", str.data()); //string->CString
    str = LPCSTR(cstr); //CString->string


从String^转换:

       CString str("Hello")
       pin_ptr<const wchar_t> wch = PtrToStringChars(str);
   

     1.从String^ 到char*:     
           char chars[64];
           size_t convertedChars = 0;
           wcstombs_s(&convertedChars, chars, wcslen(wch) + 1, wch, _TRUNCATE);


    2.从String^ 到string:     
           string s(wch);


    3.从String^ 到CString:  
           String ^s = gcnew String(wch);


最新回复 (0)
返回
零下一度
主题数
928
帖子数
0
注册排名
1