iswprint
Header: <wctype.h>
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.
# Declarations
int iswprint( wint_t ch );
(since C95)
# Parameters
ch: wide character
# Return value
Non-zero value if the wide character can be printed, zero otherwise.
# Notes
ISO 30112 specifies which Unicode characters are included in POSIX print category.
# Example
#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));
}