Syntax
#include <wctype.h>
/* test for: */
int iswalnum(wint_t wc); /* wide alphanumeric character */
int iswalpha(wint_t wc); /* wide alphabetic character */
int iswcntrl(wint_t wc); /* wide control character */
int iswdigit(wint_t wc); /* wide decimal digit */
int iswgraph(wint_t wc); /* wide printable character, excluding space */
int iswlower(wint_t wc); /* wide lowercase character */
int iswprint(wint_t wc); /* wide printable character, including space */
int iswpunct(wint_t wc); /* wide punctuation character, excluding space */
int iswspace(wint_t wc); /* wide whitespace character */
int iswupper(wint_t wc); /* wide uppercase character */
int iswxdigit(wint_t wc); /* wide hexadecimal digit */
Description
These functions test a given wide integer value wc to determine whether it has a certain property as defined by the LC_CTYPE category of your current locale. The value of wc must be representable as a wchar_t or WEOF.
The functions test for the following:
iswalnum
These functions return a nonzero value if the wide integer satisfies the test value; 0 if it does not.
This example analyzes all characters between 0x0 and 0xFF. The output of this example is a 256-line table showing the characters from 0 to 255 and indicates if the characters have the properties tested for.
#include <locale.h>#include <stdio.h>
#include <wctype.h>
#define UPPER_LIMIT 0xFF
int main(void)
{
wint_t wc;
setlocale(LC_ALL, "En_US");
for (wc = 0; wc <= UPPER_LIMIT; wc++) {
printf("%#4x ", wc);
printf("%lc", iswprint(wc) ? (wchar_t)wc : " ");
printf("%s", iswalnum(wc) ? " AN" : " ");
printf("%s", iswalpha(wc) ? " A " : " ");
printf("%s", iswcntrl(wc) ? " C " : " ");
printf("%s", iswdigit(wc) ? " D " : " ");
printf("%s", iswgraph(wc) ? " G " : " ");
printf("%s", iswlower(wc) ? " L " : " ");
printf("%s", iswpunct(wc) ? " PU" : " ");
printf("%s", iswspace(wc) ? " S " : " ");
printf("%s", iswprint(wc) ? " PR" : " ");
printf("%s", iswupper(wc) ? " U " : " ");
printf("%s", iswxdigit(wc) ? " H " : " ");
putchar('\n');
}
return 0;
/****************************************************************************
The output should be similar to :
:
0x20 S PR
0x21 ! G PU PR
0x22 " G PU PR
0x23 # G PU PR
0x24 $ G PU PR
0x25 % G PU PR
0x26 & G PU PR
0x27 ' G PU PR
0x28 ( G PU PR
0x29 ) G PU PR
0x2a * G PU PR
0x2b + G PU PR
0x2c , G PU PR
0x2d - G PU PR
0x2e . G PU PR
0x2f / G PU PR
0x30 0 AN D G PR H
0x31 1 AN D G PR H
0x32 2 AN D G PR H
0x33 3 AN D G PR H
0x34 4 AN D G PR H
0x35 5 AN D G PR H
0x36 6 AN D G PR H
0x37 7 AN D G PR H
0x38 8 AN D G PR H
0x39 9 AN D G PR H
:
****************************************************************************/
}
Related Information