Each of these routines tests a specified single-byte character, wide character, or multibyte character for satisfaction of a condition. (By definition, the ASCII character set is a subset of all multibyte-character sets. For example, Japanese katakana includes ASCII as well as non-ASCII characters.) Generally these routines execute faster than tests you might write. For example, the following code executes slower than a call to isalpha(c):
if ((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))
return TRUE;
Character-Classification Routines
Routine | Character Test Condition |
isalnum, iswalnum, _ismbcalnum | Alphanumeric |
isalpha, iswalpha, _ismbcalpha | Alphabetic |
__isascii, iswascii | ASCII |
iscntrl, iswcntrl | Control |
__iscsym | Letter, underscore, or digit |
__iscsymf | Letter or underscore |
isdigit, iswdigit, _ismbcdigit | Decimal digit |
isgraph, iswgraph, _ismbcgraph | Printable other than space |
islower, iswlower, _ismbclower | Lowercase |
_ismbchira | Hiragana |
_ismbckata | Katakana |
_ismbclegal | Legal multibyte character |
_ismbcl0 | Japan-level 0 multibyte character |
_ismbcl1 | Japan-level 1 multibyte character |
_ismbcl2 | Japan-level 2 multibyte character |
_ismbcsymbol | Non-alphanumeric multibyte character |
isprint, iswprint, _ismbcprint | Printable |
ispunct, iswpunct, _ismbcpunct | Punctuation |
isspace, iswspace, _ismbcspace | White-space |
isupper, iswupper, _ismbcupper | Uppercase |
iswctype | Property specified by desc argument |
isxdigit, iswxdigit | Hexadecimal digit |
mblen | Return length of valid multibyte character; result depends on LC_CTYPE category setting of current locale |