nicode下CString和char *之間的互相轉換 更正

參考鏈接

Unicode下CString和char *之間的互相轉換-CSDN博客

 

(2)方法二:使用WideCh

#include <iostream>  
using namespace std;  
#include <atlstr.h>  
  
int main()  
{  
    CString str = L"liuxijiao計算機網絡";  
    int n = str.GetLength(); //獲取str的字符數  
    int len = WideCharToMultiByte(CP_ACP, 0, str, n, NULL, 0, NULL, NULL); //獲取寬字節字符的大小,大小是按字節計算的  
    char *pChar = new char[len + 1]; //以字節爲單位  
    WideCharToMultiByte(CP_ACP, 0, str, n, pChar, len, NULL, NULL); //寬字節編碼轉換成多字節編碼  
    //=========================================================
    // 特別提醒,這裏不是len+1,而是len。結束符號不是 '/0',而是 '\0'
    //=========================================================
    pChar[len] = '\0'; //多字節字符以'\0'結束  
    cout<<pChar<<endl;  
         delete[] pChar;  
    return 0;  
}

 

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