CString,string,char陣列的轉換

2021-09-03 09:51:11 字數 1446 閱讀 2572

雖然網上關於cstring,string,char陣列的轉換的文章一大堆,但是感覺很亂很雜,而且許多並不能真正達到目的,在此,我把自己除錯通過的轉換方法貼到這裡,做個筆記。

編譯環境:vs2008, use unicode character set

//----------------ansi字串轉換為unicode字串----------------------// 

// 待轉換的陣列 

char szdcbparam[50] = ;   

// 計算需要的緩衝區大小 

dword dwnum = multibytetowidechar (cp_acp, 0, szdcbparam, -1, null, 0);   

// 分配存放轉換後資料的緩衝區 

wchar_t *pwtext = new

wchar_t[dwnum] ;   

// 轉換後的資料存放在pwtext所指向的空間

if (!multibytetowidechar (cp_acp, 0, szdcbparam, -1, pwtext, dwnum))   

// 注: 如果是char型陣列轉cstring,直接使用cstring sztest = cstring(szdcbparam);

//----------------unicode字串轉換為ansi字串----------------------//

//----------------將cstring轉為char型陣列---------------------------//

// 待轉換的資料 

cstring szerrorinfo = _t("this is a test string!");   

// 儲存錯誤資訊的ansi字串的緩衝區,注意,緩衝區要足夠大 

char infostring[100];   

// 轉換後的資料存放在infostring陣列中

if (!widechartomultibyte(cp_acp,0,lpctstr(szerrorinfo),-1,infostring,100,null,null))   

//----------------將cstring轉為string----------------------//

cstring cstr=_t("test");   

std::string str = (cstringa)cstr;   

// 注意,在vs2008下,使用std::string temp = cstr.getbuffer(0)不行。

//----------------將string轉為cstring----------------------//

std::string strtest = "test";  

cstring cstrtest = cstring(strtest.c_str()); 

CString,string,char陣列的轉換

ansi字串轉換為unicode字串 待轉換的陣列 char szdcbparam 50 計算需要的緩衝區大小 dword dwnum multibytetowidechar cp acp,0,szdcbparam,1,null,0 分配存放轉換後資料的緩衝區 wchar t pwtext new ...

CString,string,char陣列的轉換

雖然網上關於cstring,string,char陣列的轉換的文章一大堆,但是感覺很亂很雜,而且許多並不能真正達到目的,在此,我把自己除錯通過的轉換方法貼到這裡,做個筆記。編譯環境 vs2008,use unicode character set ansi字串轉換為unicode字串 待轉換的陣列 ...

CString,string,char 的綜合比較

一 概述 string和cstring均是字串模板類,string為標準模板類 stl 定義的字串類,已經納入c 標準之中 cstring typedef cstringt cstring 為visual c 中最常用的字串類,繼承自c stringt類,主要應用在mfc和atl程式設計中,主要資料...