c語言怎麼用變量存儲中文字符?書本上面沒有的祕密

c語言怎麼用變量存儲中文字符?書本上面沒有的秘密

很多學習者做一開始學習c語言的時候都會有想過處理中文的想法,但找不到方法而放棄,但其實方法十分簡單。我們下面進入正題吧。

所有學習C語言的學習者都知道ASCII碼,甚至很多初學者都認為C語言所用的就只是ASCII碼,只可以使用英文字符。

而ASCII碼是用一個字節的長度來表示那些字符,我們常用的char也是一個字節,而我們漢字字數太多不可能用一個字節就全部包含進去。

為了解決這個問題,C語言推出了一種新的類型,叫做 wchar_t。w 是 wide 的首字母,t 是 type 的首字符,wchar_t 的意思就是寬字符類型。wchar_t 的長度由編譯器決定:

  • 在微軟編譯器下,它的長度是 2,等價於 unsigned short;
  • 在GCC、LLVM/Clang 下,它的長度是 4,等價於 unsigned int。

wchar_t 類型位於 頭文件中,它使得代碼在具有良好移植性的同時,也節省了不少內存。

下面用例子來告訴你們如何使用

#include

#include

int main(){

wchar_t a = L'A'; //英文字符(基本拉丁字符)

wchar_t b = L'9'; //英文數字(阿拉伯數字)

wchar_t c = L'中'; //中文漢字

wchar_t d = L'國'; //中文漢字

wchar_t e = L'。'; //中文標點

wchar_t f = L'ヅ'; //日文片假名

wchar_t g = L'♥'; //特殊符號

wchar_t h = L'༄'; //藏文

//將本地環境設置為簡體中文

setlocale(LC_ALL, "zh_CN");

//使用專門的 putwchar 輸出寬字符

putwchar(a); putwchar(b); putwchar(c); putwchar(d);

putwchar(e); putwchar(f); putwchar(g); putwchar(h);

putwchar(L'\n'); //只能使用寬字符

//使用通用的 wprintf 輸出寬字符

wprintf(

L"Wide chars: %lc %lc %lc %lc %lc %lc %lc %lc\n", //必須使用寬字符串

a, b, c, d, e, f, g, h

);

return 0;

}

這裡對於新人來說可能比較難懂,所以試著瞭解一下就好。下面有更加方便的玩法,可以瞭解一下。使用字符串或者數組來進行存儲和處理,

char str1[] = "神奇墨離";

char *str2 = "神奇毛毛";

想不到吧,現在是不是又有些有趣的想法?那麼快去自己實踐吧,敲代碼去吧。再那之前先,收藏,轉發,評論,關注。


分享到:


相關文章: