跳轉到內容

C 程式設計/wctype.h

來自華夏公益教科書,自由的教科書

在 C 程式語言中,wctype.h 是標準庫中的一個頭檔案,包含用於分類和對映寬字元的各種函式和宏。處理(普通,非寬)字元的對應標頭檔案是 <ctype.h>

該標頭檔案聲明瞭 (來自 <wchar.h>) wint_twctype_t 型別,以及 WEOF 宏。[1] (wint_t 能夠儲存任何寬字元或 WEOF 值。) wctrans_t 型別也被宣告,它表示字元之間的對映。[1]

字元分類函式

[編輯 | 編輯原始碼]

這些函式根據當前區域設定,返回非零/零,具體取決於引數是否在特定類別中。POSIX:2008 指定了這些函式的替代版本,這些版本以 _l 結尾,並接受區域設定 (locale_t) 作為附加引數。

宣告 如果ch 是 … 返回非零值
int iswalnum(wint_t wc); 字母數字
int iswalpha(wint_t wc); 字母
int iswblank(wint_t wc); 空格
int iswcntrl(wint_t wc); 控制字元
int iswctype(wint_t wc, wctype_t charclass); charclass
int iswdigit(wint_t wc); 數字
int iswgraph(wint_t wc); 可見字元
int iswlower(wint_t wc); 小寫字母
int iswprint(wint_t wc); 可列印
int iswpunct(wint_t wc); 標點符號
int iswspace(wint_t wc); 空白符
int iswupper(wint_t wc); 大寫字母
int iswxdigit(wint_t wc); 十六進位制數字

字元對映函式

[編輯 | 編輯原始碼]

這些函式接收一個寬字元,並對其應用一些對映。

宣告 描述
wint_t towctrans(wint_t ch, wctrans_t desc); 根據對映desc 對映ch
wint_t towlower(wint_t ch); 如果ch 是大寫字母,則將其對映為小寫,否則返回不變
wint_t towupper(wint_t ch); 如果ch 是小寫字母,則將其對映為大寫,否則返回不變

其他函式

[編輯 | 編輯原始碼]

這些函式從字串建立用於其他函式的值。請注意,iswdigit(c) 等同於 iswctype(c, wctype("digit")),而 toupper(c) 等同於 towctrans(c, wctrans("toupper"))[2]

宣告 描述
wctrans_t wctrans(const char *charclass); 返回一個字元對映,可與 towctrans 一起使用
wctype_t wctype(const char *property); 返回一個字元類別,可與 iswctype 一起使用

參考文獻

[編輯 | 編輯原始碼]
  1. a b wctype.h: 寬字元分類和對映實用程式 – 基本定義參考,The Single UNIX® Specification,Issue 7 from The Open Group
  2. 當前標準 (包括技術勘誤 TC1、TC2 和 TC3 的 C99)PDF (3.61 MB). 第 397、398 和 400 頁。
華夏公益教科書