iswctype() — Test for Character Property
Format
#include <wctype.h>
int iswctype(wint_t wc, wctype_t wc_prop);
Language Level
ANSI
Threadsafe
Yes
Locale Sensitive
The behavior of this function might be affected by the LC_CTYPE category of the current locale if LOCALETYPE(*LOCALE) is specified on the compilation command. The behavior of this function might be affected by the LC_UNI_CTYPE category of the current locale if either the LOCALETYPE(*LOCALEUCS2) option or the LOCALETYPE(*LOCALEUTF) option is specified on the compilation command. This function is not available when LOCALETYPE(*CLD) is specified on the compilation command. For more information, see Understanding CCSIDs and Locales.
Wide Character Function
See Wide Characters for more information.
Description
The iswctype()
function
determines whether the wide character wc has the property wc_prop.
If the value of wc is neither WEOF nor any value of the wide
characters that corresponds to a multibyte character, the behavior
is undefined. If the value of wc_prop is incorrect (that is,
it is not obtained by a previous call to the wctype()
function,
or wc_prop has been invalidated by a subsequent call to the setlocale()
function),
the behavior is undefined.
Return Value
The iswctype()
function
returns true if the value of the wide character wc has the
property wc_prop.
iswctype(wc, wctype("alnum")); /* is equivalent to */ iswalnum(wc);
iswctype(wc, wctype("alpha")); /* is equivalent to */ iswalpha(wc);
iswctype(wc, wctype("blank")); /* is equivalent to */ iswblank(wc);
iswctype(wc, wctype("cntrl")); /* is equivalent to */ iswcntrl(wc);
iswctype(wc, wctype("digit")); /* is equivalent to */ iswdigit(wc);
iswctype(wc, wctype("graph")); /* is equivalent to */ iswgraph(wc);
iswctype(wc, wctype("lower")); /* is equivalent to */ iswlower(wc);
iswctype(wc, wctype("print")); /* is equivalent to */ iswprint(wc);
iswctype(wc, wctype("punct")); /* is equivalent to */ iswpunct(wc);
iswctype(wc,wctype("space")); /* is equivalent to */ iswspace(wc);
iswctype(wc, wctype("upper")); /* is equivalent to */ iswupper(wc);
iswctype(wc, wctype("xdigit")); /* is equivalent to */ iswxdigit(wc);
Example
#include <stdio.h>
#include <wctype.h>
int main(void)
{
int wc;
for (wc=0; wc <= 0xFF; wc++) {
printf("%3d", wc);
printf(" %#4x ", wc);
printf("%3s", iswctype(wc, wctype("alnum")) ? "AN" : " ");
printf("%2s", iswctype(wc, wctype("alpha")) ? "A" : " ");
printf("%2s", iswctype(wc, wctype("blank")) ? "B" : " ");
printf("%2s", iswctype(wc, wctype("cntrl")) ? "C" : " ");
printf("%2s", iswctype(wc, wctype("digit")) ? "D" : " ");
printf("%2s", iswctype(wc, wctype("graph")) ? "G" : " ");
printf("%2s", iswctype(wc, wctype("lower")) ? "L" : " ");
printf(" %c", iswctype(wc, wctype("print")) ? wc : ' ');
printf("%3s", iswctype(wc, wctype("punct")) ? "PU" : " ");
printf("%2s", iswctype(wc, wctype("space")) ? "S" : " ");
printf("%3s", iswctype(wc, wctype("print")) ? "PR" : " ");
printf("%2s", iswctype(wc, wctype("upper")) ? "U" : " ");
printf("%2s", iswctype(wc, wctype("xdigit")) ? "X" : " ");
putchar('\n');
}
}