C++ wchar_t介紹以及和string類型的轉換


首先介紹下wchar_t類型


一、wchar_t類型的由來

我們知道char類型變量可以存儲一個字節的字符,它用來保存英文字符和標點符號是可以的,但是對於漢字、韓文以及日文這樣的字符卻不可以,因為漢字、韓文以及日文每一個文字都占據兩個字節,為了解決這個問題,c++提出了wchar_t類型,稱之為雙字節類型,又稱寬字符類型。

二、下面是一個范例

 1 int main(int argc, wchar_t* argv[])  2 {  3     //使用setlocale函數將本機的語言設置為中文簡體
 4     setlocale(LC_ALL,"chs");//LC_ALL表示設置所有的選項(包括金融貨幣、小數點,時間日期格式、語言字符串的使用習慣等),chs表示中文簡體
 5     wchar_t wt[] = L"中國你好!";//大寫字母L告訴編譯器為"中"字分配兩個字節的空間
 6     wcout<<wt<<endl;//使用wcout來代替cout輸出寬字符,wcin類代替cin輸入寬字符
 7     cout<<wcslen(wt)<<endl;//wcslen輸出寬字符串的長度,輸出長度是5
 8     cout<<sizeof(wt)<<endl;//輸出長度是12個字節,最后的wchar_t類型的'\0'兩個字節
 9     return 0; 10 }

三、 和string類型之間的轉換

1 string str("你好中國"); 2 wchar_t * wc = new wchar_t[str.size()]; 3 swprintf(wc,100,L"%S",str.c_str()); //注意大寫 4 //wc指向的內存區域存儲這wchar_t類型的 ”你好中國“。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM