iswcntrl
Defined in header <wctype.h> | ||
---|---|---|
int iswcntrl( wint_t ch ); | (since C95) |
Checks if the given wide character is a control character, i.e. codes 0x00-0x1F
and 0x7F
and any control characters specific to the current locale.
Parameters
ch | - | wide character |
Return value
Non-zero value if the wide character is a control character, zero otherwise.
Notes
ISO 30112 defines POSIX control characters as Unicode characters U+0000..U+001F, U+007F..U+009F, U+2028, and U+2029 (Unicode classes Cc, Zl, and Zp).
Example
#include <stdio.h> #include <wchar.h> #include <wctype.h> #include <locale.h> int main(void) { wchar_t c = L'\u2028'; // the Unicode character "line separator" printf("in the default locale, iswcntrl(%#x) = %d\n", c, !!iswcntrl(c)); setlocale(LC_ALL, "en_US.utf8"); printf("in Unicode locale, iswcntrl(%#x) = %d\n", c, !!iswcntrl(c)); }
Output:
in the default locale, iswcntrl(0x2028) = 0 in Unicode locale, iswcntrl(0x2028) = 1
References
- C11 standard (ISO/IEC 9899:2011):
- 7.30.2.1.4 The iswcntrl function (p: 449)
- C99 standard (ISO/IEC 9899:1999):
- 7.25.2.1.4 The iswcntrl function (p: 395)
See also
checks if a character is a control character (function) |
ASCII values | characters |
| |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
decimal | hexadecimal | octal | |||||||||||||
0–8 | \x0 –\x8 | \0 –\10 | control codes (NUL , etc.) |
≠0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
9 | \x9 | \11 | tab (\t ) |
≠0 | 0 |
≠0 |
≠0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
10–13 | \xA –\xD | \12 –\15 | whitespaces (\n , \v , \f , \r ) |
≠0 | 0 |
≠0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
14–31 | \xE –\x1F | \16 –\37 | control codes |
≠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 | backspace character (DEL ) |
≠0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/c/string/wide/iswcntrl