多字符集下CString string char* char[]之間相互轉換

 在每次用到這些字符串轉換的時候,總是記得不是很清楚,查找這些資料也總是浪費了很多時間,在此總結一下,方便以後使用。

準備工作:

    (1) 先將工程的字符集設置爲多字節,否則會出現在字符拷貝時結尾爲亂碼。舉個例子,

         CString  pathStr("abc");
         char       path[200];
         strcpy_s(path,   200,    (LPSTR)(LPCTSTR)pathStr); 

         將字符集設置爲: Unicode 字符集   時, 運行結果爲:

         

        將字符集設置爲: 使用多字節字符集   時, 運行結果爲:

        

        設置方法爲:選擇項目->項目屬性(或直接按alt+F7->配置屬性->常規

        參考文檔:http://blog.163.com/ming__nan/blog/static/6783288200991111281852/

         

1.  其他類型轉 CString

    轉爲 CString 類型比較簡單,差不多一個Format() 函數就可搞定其它類型轉換爲 CString 類型。

    (1) String 轉 CString

        CString.format("%s",string.c_str());  舉個例子:

 

              CString pathStr("abc");
              std::stringtestStr("kkk");
              pathStr.Format("%s",testStr.c_str());

     運行結果爲:

    

    例子2:

     CString cStr("abc");

     std::string testStr("kkk");
     cStr = testStr.c_str();
     testStr.assign("aaa");       // string 的變化不會影響 CString 

    運行結果爲:

    

    (2) char* 轉 CString

      CString.format("%s", char*); 舉個例子:

     CString cStr("abc");
     char *pChar = "bbb";
     cStr.Format("%s", pChar);

    運行結果爲:

    

    (3) char[] 轉 CString

     CString.format("%s", char[]); 舉個例子:

     CString cStr("abc");
     char charArray[200] = "ccc";
     cStr.Format("%s", charArray);

    運行結果爲:

    

 

2. 其它類型轉 string

   其它類型轉 string 也很簡單,一個 assign( ) 函數就可以搞定!

    (1) CString 轉 string

     CString cStr("abc");
     string str("sss");
     str = cStr.GetBuffer(0);         // 此處也可以是 str.assign(cStr.GetBuffer(0));       或        str.assign(cStr);
     cStr.Format("%s", "yyy");         // CString 的變化不會影響 String

    運行結果:

    

    

    (2) char* 轉 string

       可以在初始化的時候用char*來初始化string變量,也可以用assign()函數,舉個例子:

     string str("sss");
     char *pChar = "bbb";
     str.assign(pChar);

    運行結果:

    

 

    (3) char[] 轉 string

     string str("sss");
     char charArray[200] = "ccc";
     str.assign(charArray);

    運行結果:

    

 

3  其它類型轉 char*

    其實就是獲取其它類型指針的方法。

參考資料:

    (1) http://hi.baidu.com/the_sun_23/item/39f118cc8ea2d66da8ba9423

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章