<wctype.h>
-- 类型
阅读:0
作者:严长生
wctype_t 用来表示宽字符分类的标量类型
wctype_t 是一个通过 typedef 定义的标量类型,它用来表示宽字符的分类。
一个宽字符可以是字母、十进制数字、空白符、可打印字符等不同的分类,它们可以由 iswalpha()、iswdigit()、iswspace()、iswprint() 等专门的宽字符检测函数来确定,也可以由 iswctype() 这个通用的宽字符检测函数来确定。
我们可以用文本(字符串)来描述字符的分类,也可以用标量(一般是整数)来描述字符的分类,文本和标量是一一对应的。就像班级里的学生,我们可以喊他的名字(文本),也可以喊他的学号(标量),这两种方式都能够找到唯一的学生。
对于用户来说,文本比标量更加直观,更加容易记忆;对于编程语言来说,标量比文本更加容易处理,计算机底层都是整数。
比如我们可以用
宽字符分类顶多有几十种,这意味着对应的标量值也就有几十个,C语言标准规定,wctype_t 这种标量类型要足够容纳这几十个标量值。大部分标准库都将 wctype_t 实现为整数类型(int、long等)。
文本和标量的对应关系不是固定的,它可能会随着不同的库实现、不同的区域设置而变化,我们是不可能记忆的,也没有必要记忆,需要时可以通过 wctype() 函数来获取文本对应的标量。
一个宽字符可以是字母、十进制数字、空白符、可打印字符等不同的分类,它们可以由 iswalpha()、iswdigit()、iswspace()、iswprint() 等专门的宽字符检测函数来确定,也可以由 iswctype() 这个通用的宽字符检测函数来确定。
我们可以用文本(字符串)来描述字符的分类,也可以用标量(一般是整数)来描述字符的分类,文本和标量是一一对应的。就像班级里的学生,我们可以喊他的名字(文本),也可以喊他的学号(标量),这两种方式都能够找到唯一的学生。
对于用户来说,文本比标量更加直观,更加容易记忆;对于编程语言来说,标量比文本更加容易处理,计算机底层都是整数。
比如我们可以用
"alpha"
这段文本来描述一个宽字符是字母,也可以用100
这个标量来描述该字符是字母,此时"alpha"
和100
就是对应的关系。宽字符分类顶多有几十种,这意味着对应的标量值也就有几十个,C语言标准规定,wctype_t 这种标量类型要足够容纳这几十个标量值。大部分标准库都将 wctype_t 实现为整数类型(int、long等)。
文本和标量的对应关系不是固定的,它可能会随着不同的库实现、不同的区域设置而变化,我们是不可能记忆的,也没有必要记忆,需要时可以通过 wctype() 函数来获取文本对应的标量。