跳转到内容

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: 宽字符分类和映射实用程序 – 基本定义参考,单一 UNIX® 规范,第 7 版,来自开放组
  2. 当前标准(C99 包含技术勘误 TC1、TC2 和 TC3)PDF (3.61 MB). 第 397、398 和 400 页。
华夏公益教科书