NAME
iswctype
iswctype_l — test character
for a specified class
SYNOPSIS
#include
<wctype.h>
int iswctype(wint_t wc, wctype_t charclass);
[CX] int iswctype_l(wint_t wc, wctype_t charclass,
locale_t locale);
DESCRIPTION
For iswctype (): [CX]
The functionality described on this reference page is aligned with the ISO C
standard. Any conflict between the requirements described here and the ISO C
standard is unintentional. This volume of POSIX.1-2017 defers to the ISO C
standard.
The iswctype ()
[CX] and iswctype_l () functions shall
determine whether the wide-character code wc has the
character class charclass, returning true or false. The
iswctype () [CX] and
iswctype_l () functions are defined on WEOF and
wide-character codes corresponding to the valid character encodings in the
current locale, or [CX] in the locale represented by
locale, respectively. If the wc argument
is not in the domain of the function, the result is undefined. If the value
of charclass is invalid (that is, not obtained by a call
to wctype(3) or charclass is invalidated
by a subsequent call to setlocale(3) that has affected
category
LC_CTYPE) the
result is unspecified.
[CX] The behavior is undefined if the locale argument to iswctype_l () is the special locale object LC_GLOBAL_LOCALE or is not a valid locale object handle.
RETURN VALUE
The iswctype () [CX] and
iswctype_l () functions shall return non-zero (true) if
and only if wc has the property described by
charclass. [CX] If
charclass is ( wctype_t) 0, these
functions shall return 0.
ERRORS
No errors are defined.
EXAMPLES
Testing for a Valid Character
#include <wctype.h>
...
int yes_or_no;
wint_t wc;
wctype_t valid_class;
...
if ((valid_class=wctype("vowel")) == (wctype_t)0)
/* Invalid character class. */
yes_or_no=iswctype(wc,valid_class);
APPLICATION USAGE
The twelve strings "alnum",
"alpha",
"blank",
"cntrl",
"digit",
"graph",
"lower",
"print",
"punct",
"space",
"upper", and
"xdigit" are reserved for the standard
character classes. In the table below, the functions in the left column are
equivalent to the functions in the right column.
iswalnum(wc) iswctype(wc, wctype("alnum"))
iswalnum_l(wc, locale) iswctype_l(wc, wctype("alnum"), locale)
iswalpha(wc) iswctype(wc, wctype("alpha"))
iswalpha_l(wc, locale) iswctype_l(wc, wctype("alpha"), locale)
iswblank(wc) iswctype(wc, wctype("blank"))
iswblank_l(wc, locale) iswctype_l(wc, wctype("blank"), locale)
iswcntrl(wc) iswctype(wc, wctype("cntrl"))
iswcntrl_l(wc, locale) iswctype_l(wc, wctype("cntrl"), locale)
iswdigit(wc) iswctype(wc, wctype("digit"))
iswdigit_l(wc, locale) iswctype_l(wc, wctype("digit"), locale)
iswgraph(wc) iswctype(wc, wctype("graph"))
iswgraph_l(wc, locale) iswctype_l(wc, wctype("graph"), locale)
iswlower(wc) iswctype(wc, wctype("lower"))
iswlower_l(wc, locale) iswctype_l(wc, wctype("lower"), locale)
iswprint(wc) iswctype(wc, wctype("print"))
iswprint_l(wc, locale) iswctype_l(wc, wctype("print"), locale)
iswpunct(wc) iswctype(wc, wctype("punct"))
iswpunct_l(wc, locale) iswctype_l(wc, wctype("punct"), locale)
iswspace(wc) iswctype(wc, wctype("space"))
iswspace_l(wc, locale) iswctype_l(wc, wctype("space"), locale)
iswupper(wc) iswctype(wc, wctype("upper"))
iswupper_l(wc, locale) iswctype_l(wc, wctype("upper"), locale)
iswxdigit(wc) iswctype(wc, wctype("xdigit"))
iswxdigit_l(wc, locale) iswctype_l(wc, wctype("xdigit"), locale)
RATIONALE
None.
FUTURE DIRECTIONS
None.
SEE ALSO
iswalnum(3), iswalpha(3), iswcntrl(3), iswdigit(3), iswgraph(3), iswlower(3), iswprint(3), iswpunct(3), iswspace(3), iswupper(3), iswxdigit(3), setlocale(3), uselocale(3), wctype(3)
XBD <locale.h>, <wctype.h>
CHANGE HISTORY
First released as World-wide Portability Interfaces in Issue 4.
Issue 5
The following change has been made in this version for alignment with ISO/IEC 9899/AMD1:1995 (“ISO C90, Amendment 1”) (E):
- The SYNOPSIS has been changed to indicate that this function and associated data types are now made visible by inclusion of the <wctype.h> header rather than <wchar.h>.
Issue 6
The behavior of charclass = ( wctype_t) 0 is now described.
An example is added.
A new function, iswblank(3), is added to the list in the APPLICATION USAGE.
Issue 7
The iswctype_l () function is added from The Open Group Technical Standard, 2006, Extended API Set Part 4.
POSIX.1-2008, Technical Corrigendum 1, XSH/TC1-2008/0321 [283] and XSH/TC1-2008/0322 [283] are applied.
POSIX.1-2008, Technical Corrigendum 2, XSH/TC2-2008/0184 [799] and XSH/TC2-2008/0185 [799] are applied.