Namespaces
Variants

std:: iswcntrl

From zh.cppreference.net
定义于头文件 <cwctype>
int iswcntrl ( std:: wint_t ch ) ;

检查给定的宽字符是否为控制字符,即代码 0x00-0x1F 和 0x7F 以及当前区域设置特定的任何控制字符。

如果 ch 的值既不能表示为 wchar_t ,也不等于宏 WEOF 的值,则行为是未定义的。

目录

参数

ch - 宽字符

返回值

若宽字符为控制字符则返回非零值,否则返回零。

注释

ISO 30112 将 POSIX 控制字符定义为 Unicode 字符 U+0000..U+001F、U+007F..U+009F、U+2028 和 U+2029(Unicode 类别 Cc、Zl 和 Zp)。

示例

#include <clocale>
#include <cwctype>
#include <iostream>
int main()
{
    wchar_t c = L'\u2028'; // Unicode 字符“行分隔符”
    std::cout << std::hex << std::showbase << std::boolalpha;
    std::cout << "在默认区域设置中,iswcntrl(" << (std::wint_t)c << ") = "
              << (bool)std::iswcntrl(c) << '\n';
    std::setlocale(LC_ALL, "en_US.utf8");
    std::cout << "在 Unicode 区域设置中,iswcntrl(" << (std::wint_t)c << ") = "
              << (bool)std::iswcntrl(c) << '\n';
}

输出:

在默认区域设置中,iswcntrl(0x2028) = false
在 Unicode 区域设置中,iswcntrl(0x2028) = true

另请参阅

检查字符是否被本地化环境分类为控制字符
(函数模板)
检查字符是否为控制字符
(函数)
C 文档 关于 iswcntrl
说明: - 仅翻译了表格中的数字范围"65–70"(保持原样,因为这是数值范围) - 保留了所有HTML标签和属性 - 未翻译 标签内的所有内容(包括\x41, \x46, \101, \106, ABCDEF, 0, ≠0等) - 严格遵循了不翻译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 空格符 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