iswprint
From cppreference.com
C
Concurrency support (C11)
Null-terminated wide strings
Character manipulation
Conversions to numeric formats
String manipulation
Array manipulation
Types
Macros
(C95)
(C95)
(C95)
(C95)
(C95)
(C95)
(C99)
(C95)(C99)
(C99)(C95)(C99)
(C95)(C11)
(C95)(C11)
(C95)
(C95)(C95)
(C95)(C95)
(C95)
Defined in header
<wctype.h>
int iswprint( wint_t ch );
(since C95)
Checks if the given wide character can be printed, i.e. it is either a number (0123456789
), an uppercase letter (ABCDEFGHIJKLMNOPQRSTUVWXYZ
), a lowercase letter (abcdefghijklmnopqrstuvwxyz
), a punctuation character (!"#$%&'()*+,-./:;<=>?@[\]^_`{!}~
), space or any printable character specific to the current C locale.
[edit] Parameters
ch
-
wide character
[edit] Return value
Non-zero value if the wide character can be printed, zero otherwise.
[edit] Notes
ISO 30112 specifies which Unicode characters are included in POSIX print category.
[edit] Example
Run this code
#include <locale.h> #include <stdio.h> #include <wchar.h> #include <wctype.h> int main(void) { wchar_t c = L'\u2002'; // Unicode character 'EN SPACE' printf ("in the default locale, iswprint(%#x) = %d\n", c, !!iswprint(c)); setlocale (LC_ALL, "en_US.utf8"); printf ("in Unicode locale, iswprint(%#x) = %d\n", c, !!iswprint(c)); wchar_t c2 = L'\x82'; // break permitted printf ("in Unicode locale, iswprint(%#x) = %d\n", c2, !!iswprint(c2)); }
Output:
in the default locale, iswprint(0x2002) = 0 in Unicode locale, iswprint(0x2002) = 1 in Unicode locale, iswprint(0x82) = 0
[edit] References
- C23 standard (ISO/IEC 9899:2024):
- 7.30.2.1.8 The iswprint function (p: TBD)
- C17 standard (ISO/IEC 9899:2018):
- 7.30.2.1.8 The iswprint function (p: TBD)
- C11 standard (ISO/IEC 9899:2011):
- 7.30.2.1.8 The iswprint function (p: 450)
- C99 standard (ISO/IEC 9899:1999):
- 7.25.2.1.8 The iswprint function (p: 396)
[edit] See also
C++ documentation for iswprint
ASCII values | characters |
isprint |
|||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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
|
173円 –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
|