# 空终止宽字符串

< cpp‎ | string

空终止宽字符串是以空字符结束的合法宽字符序列。

### 函数

##### 字符分类
定义于头文件 `<cwctype>`
iswalnum | 检查宽字符是否为字母数字 (函数)
iswalpha | 检查宽字符是否为字母 (函数)
iswlower | 检查宽字符是否为小写 (函数)
iswupper | 检查宽字符是否为大写 (函数)
iswdigit | 检查宽字符是否为数字 (函数)
iswxdigit | 检查宽字符是否为十六进制字符 (函数)
iswcntrl | 检查宽字符是否为控制字符 (函数)
iswgraph | 检查宽字符是否为图形字符 (函数)
iswspace | 检查宽字符是否为空白间隔字符 (函数)
iswblank (C++11) | 检查宽字符是否为空白字符 (函数)
iswprint | 检查宽字符是否为打印字符 (函数)
iswpunct | 检查宽字符是否为标点字符 (函数)
iswctype | 按照指定的 LC_TYPE 类别分类宽字符 (函数)
wctype | 在当前 C 本地环境中查找字符分类类别 (函数)
##### 字符操作
定义于头文件 `<cwctype>`
towlower | 转换宽字符为小写 (函数)
towupper | 转换宽字符为大写 (函数)
towctrans | 按照指定的 LC_TYPE 映射类别进行字符映射 (函数)
wctrans | 在当前 C 本地环境中查找字符映射类别 (函数)

ASCII 值 | 字符 | `iscntrl` `iswcntrl` | `isprint` `iswprint` | `isspace` `iswspace` | `isblank` `iswblank` | `isgraph` `iswgraph` | `ispunct` `iswpunct` | `isalnum` `iswalnum` | `isalpha` `iswalpha` | `isupper` `iswupper` | `islower` `iswlower` | `isdigit` `iswdigit` | `isxdigit` `iswxdigit`
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
十进制 | 十六进制 | 八进制
0–8 | `\x0`–`\x8` | `\0`–`\10` | 控制码 (`NUL` 等) | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`
9 | `\x9` | `\11` | 制表 (`\t`) | `≠0` | `0` | `≠0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`
10–13 | `\xA`–`\xD` | `\12`–`\15` | 空白符 (`\n`, `\v`, `\f`, `\r`) | `≠0` | `0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`
14–31 | `\xE`–`\x1F` | `\16`–`\37` | 控制码 | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`
32 | `\x20` | `\40` | space | `0` | `≠0` | `≠0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`
33–47 | `\x21`–`\x2F` | `\41`–`\57` | `!"#$%&'()*+,-./` | `0` | `≠0` | `0` | `0` | `≠0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0`
48–57 | `\x30`–`\x39` | `\60`–`\71` | `0123456789` | `0` | `≠0` | `0` | `0` | `≠0` | `0` | `≠0` | `0` | `0` | `0` | `≠0` | `≠0`
58–64 | `\x3A`–`\x40` | `\72`–`\100` | `:;<=>?@` | `0` | `≠0` | `0` | `0` | `≠0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0`
65–70 | `\x41`–`\x46` | `\101`–`\106` | `ABCDEF` | `0` | `≠0` | `0` | `0` | `≠0` | `0` | `≠0` | `≠0` | `≠0` | `0` | `0` | `≠0`
71–90 | `\x47`–`\x5A` | `\107`–`\132` | `GHIJKLMNOP` `QRSTUVWXYZ` | `0` | `≠0` | `0` | `0` | `≠0` | `0` | `≠0` | `≠0` | `≠0` | `0` | `0` | `0`
91–96 | `\x5B`–`\x60` | `\133`–`\140` | `[\]^_`` | `0` | `≠0` | `0` | `0` | `≠0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0`
97–102 | `\x61`–`\x66` | `\141`–`\146` | `abcdef` | `0` | `≠0` | `0` | `0` | `≠0` | `0` | `≠0` | `≠0` | `0` | `≠0` | `0` | `≠0`
103–122 | `\x67`–`\x7A` | `\147`–`\172` | `ghijklmnop` `qrstuvwxyz` | `0` | `≠0` | `0` | `0` | `≠0` | `0` | `≠0` | `≠0` | `0` | `≠0` | `0` | `0`
123–126 | `\x7B`–`\x7E` | `\172`–`\176` | `{|}~` | `0` | `≠0` | `0` | `0` | `≠0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0`
127 | `\x7F` | `\177` | 退格字符 (`DEL`) | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`

##### 转换到数值格式
定义于头文件 `<cwchar>`
wcstol wcstoll | 转换宽字符串为整数值 (函数)
wcstoul wcstoull | 转换宽字符串为无符号整数值 (函数)
wcstof wcstod wcstold | 转换宽字符串为浮点值 (函数)
定义于头文件 `<cinttypes>`
wcstoimax wcstoumax (C++11)(C++11) | 转换宽字符串为 std::intmax_t 或 std::uintmax_t (函数)

##### 字符串操作
定义于头文件 `<cwchar>`
wcscpy | 复制一个宽字符串到另一个 (函数)
wcsncpy | 复制来自一个宽字符串的一定量宽字符到另一个 (函数)
wcscat | 后附一个宽字符串的副本到另一个 (函数)
wcsncat | 后附来自一个宽字符串的一定量宽字符到另一个 (函数)
wcsxfrm | 变换宽字符串，使得 wcscmp 会产生与 wsccoll 相同的结果 (函数)
##### 字符串检验
定义于头文件 `<cwchar>`
wcslen | 返回宽字符串长度 (函数)
wcscmp | 比较两个宽字符串 (函数)
wcsncmp | 比较来自两个宽字符串的一定量宽字符 (函数)
wcscoll | 按照当前本地环境比较两个宽字符串 (函数)
wcschr | 寻找宽字符串中宽字符的首次出现 (函数)
wcsrchr | 在宽字符串中寻找宽字符的最后一次出现 (函数)
wcsspn | 返回仅由另一宽字符串中找到的宽字符组成的最大起始段的长度 (函数)
wcscspn | 返回仅由另一宽字符串中找不到的宽字符组成的最大起始段的长度 (函数)
wcspbrk | 在一个宽字符串中，寻找另一宽字符串中任何字符的首个位置 (函数)
wcsstr | 在另一宽字符串中寻找宽字符串的首次出现 (函数)
wcstok | 寻找宽字符串中的下一个记号 (函数)

##### 宽字符数组操作
定义于头文件 `<cwchar>`
wmemcpy | 在两个不重叠数组间复制一定量宽字符 (函数)
wmemmove | 在两个可能重叠的数组间复制一定量宽字符 (函数)
wmemcmp | 比较来自两个数组的一定量宽字符 (函数)
wmemchr | 寻找宽字符数组中宽字符的首次出现 (函数)
wmemset | 复制给定宽字符到宽字符数组的每个位置 (函数)

### 类型

定义于头文件 `<cwctype>`
wctrans_t | 保有本地环境限定的字符映射的标量类型 (typedef)
wctype_t | 保有本地环境特定的字符分类的标量类型 (typedef)
定义于头文件 `<cwctype>`
定义于头文件 `<cwchar>`
wint_t | 能保有任何合法宽字符和至少多一个值的整数类型 (typedef)

### 宏

定义于头文件 `<cwchar>`
WEOF | 用于指示错误的 wint_t 类型非字符值 (宏常量)
WCHAR_MIN | wchar_t 的最小合法值 (宏常量)
WCHAR_MAX | wchar_t 的最大合法值 (宏常量)

### 参阅