很多學習者做一開始學習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 = "神奇毛毛";
想不到吧,現在是不是又有些有趣的想法?那麼快去自己實踐吧,敲代碼去吧。再那之前先,收藏,轉發,評論,關注。
閱讀更多 明江帶你學習編程 的文章