ctype(3C)ctype(3C)NAME
ctype: isdigit, isxdigit, islower, isupper, isalpha, isalnum, isspace,
iscntrl, ispunct, isprint, isgraph, isascii, __isblank - character
handling
SYNOPSIS
#include <ctype.h>
int isupper(int c);
int islower(int c);
int isalpha(int c);
int isdigit(int c);
int isxdigit(int c);
int isspace(int c);
int ispunct(int c);
int isprint(int c);
int isgraph(int c);
int iscntrl(int c);
int __isblank(int c);
int isalnum(int c);
int isascii(int c);
DESCRIPTION
These macros classify character-coded integer values. Each is a
predicate returning non-zero for true, zero for false. The behavior of
these macros, except for isascii, is affected by the current locale [see
setlocale(3C)]. To modify the behavior, change the LC_TYPE category in
setlocale, that is, setlocale (LC_CTYPE, newlocale). In the C locale, or
in a locale where character type information is not defined, characters
are classified according to the rules of the US-ASCII 7-bit coded
character set.
The macro isascii is defined on all integer values; the rest are defined
only where the argument is an int, the value of which is representable as
an unsigned char, or EOF, which is defined by the stdio.h header file and
represents end-of-file.
isupper tests for any character that is classified as an uppercase
letter.
In a locale-specific character class, no character
specified for the cntrl, digit, punct, or space character
class can be specified as class upper character.
Page 1
ctype(3C)ctype(3C)
In the C locale, the 26 uppercase letters are included in
the class upper:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
islower tests for any character that is classified as a lowercase
letter.
In a locale-specific character class, no character
specified for the cntrl, digit, punct, or space, character
class can be specified as class lower character.
In the C locale, the 26 lowercase letters are included in
the class lower:
a b c d e f g h i j k l m n o p q r s t u v w x y z
isalpha tests for any character that is classified as a letter.
In a locale-specific character class, no character
specified for the cntrl, digit, punct, or space character
class can be specified as class alpha character.
Characters classified as either upper or lower class are
automatically included in the class alpha.
In the C locale, all characters in the classes upper and
lower are included in the class alpha.
isdigit tests for any character that is classified as a numeric
digit.
In a locale-specific character class, only the digits
[0-9], in contiguous ascending sequence by numerical
value, can be specified as class digit character.
In the C locale, only:
0 1 2 3 4 5 6 7 8 9
are included in the class digit.
isxdigit tests for any character that is classified as a
hexadecimal digit.
In a locale-specific character class, only the characters
defined for the class digit, in contiguous ascending
sequence by numerical value, followed by one or more sets
of six characters representing the hexadecimal digits 10
to 15 inclusive (for example A, B, C, D, E, F, a, b, c, d,
e, f), with each set in ascending order, can be specified
as class xdigit character.
Page 2
ctype(3C)ctype(3C)
In the C locale, only:
0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
are included in the class xdigit.
isspace tests for any character that is classified as a white-
space character.
In a locale-specific character class, no character
specified for the upper, lower, alpha, digit, graph, or
xdigit character class can be specified as class space
character.
In the C locale, the characters space, form-feed, newline,
carriage-return, tab and vertical-tab are included in the
class space.
ispunct tests for any character that is classified as a
punctuation character.
In a locale-specific character class, no character
specified for the upper, lower, alpha, digit, cntrl, or
xdigit character class can be specified as class punct
character. The space character cannot be specified as
class punct character.
In the C locale, neither the space character nor any
characters in classes alpha, digit or cntrl are included
in the class punct.
isprint tests for any character that is classified as a printable
character, including the space character.
In a locale-specific character class, no character
specified for the class cntrl can be specified as class
print character. Characters specified for the classes
upper, lower, alpha, digit, xdigit, punct and the space
character are automatically included in the class print.
In the C locale, all characters in class graph are
included in the class print; no characters in class cntrl
are included.
isgraph tests for any character that is classified as printable
character, not including the space character.
In a locale-specific character class, no character
specified for the class cntrl can be specified as class
graph character. Characters specified for the classes
upper, lower, alpha, digit, xdigit, and punct are
automatically included in the class print.
Page 3
ctype(3C)ctype(3C)
In the C locale, all characters in classes alpha, digit
and punct are included in the class graph; no characters
in class cntrl are included.
iscntrl tests for any character that is classified as a control
character.
In a locale-specific character class, no character
specified for the upper, lower, alpha, digit, punct,
graph, print or xdigit character class can be specified as
class cntrl character.
In the C locale, no characters in classes alpha or print
are included in the class cntrl.
__isblank tests for any character that is classified as a blank
character.
In the C locale, only the space and tab characters are
included in the class blank.
isalnum tests for any character that is classified as a letter or
a numerical digit.
In a locale-specific character class, characters in the
classes upper, lower, alpha, and digit are automatically
classified as letters or numerical digits.
isascii tests for any ASCII character, code between 0 and 0177
inclusive.
All the character classification macros use a table lookup.
Functions exist for all the above-defined macros. To get the function
form, the macro name must be bypassed (e.g., #undef isdigit).
FILES
/usr/lib/locale/locale/LC_CTYPE
SEE ALSOchrtbl(1M), wchrtbl(1M), ctype(3C), setlocale(3C), stdio(3S), ascii(5),
environ(5).
DIAGNOSTICS
If the argument to any of the character handling macros is not in the
domain of the function, the result is undefined.
Page 4