term% cat index.txt CTYPE(2) System Calls Manual CTYPE(2)
NAME
isalpha, isupper, islower, isdigit, isxdigit, isalnum, isspace, is‐
punct, isprint, isgraph, iscntrl, isascii, toascii, _toupper, _tolower,
toupper, tolower - ASCII character classification
SYNOPSIS
#include <u.h>
#include <libc.h>
#include <ctype.h>
isalpha(c)
isupper(c)
islower(c)
isdigit(c)
isxdigit(c)
isalnum(c)
isspace(c)
ispunct(c)
isprint(c)
isgraph(c)
iscntrl(c)
isascii(c)
_toupper(c)
_tolower(c)
toupper(c)
tolower(c)
toascii(c)
DESCRIPTION
These macros classify ASCII-coded integer values by table lookup. Each
is a predicate returning nonzero for true, zero for false. Isascii is
defined on all integer values; the rest are defined only where isascii
is true and on the single non-ASCII value EOF; see fopen(2).
isalpha c is a letter, a-z or A-Z
isupper c is an upper case letter, A-Z
islower c is a lower case letter, a-z
isdigit c is a digit, 0-9
isxdigit c is a hexadecimal digit, 0-9 or a-f or A-F
isalnum c is an alphanumeric character, a-z or A-Z or 0-9
isspace c is a space, horizontal tab, newline, vertical tab, formfeed,
or carriage return (0x20, 0x9, 0xA, 0xB, 0xC, 0xD)
ispunct c is a punctuation character (one of
!"#$%&'()*+,-./:;<=>?@[\]^_‘{|}~)
isprint c is a printing character, 0x20 (space) through 0x7E (tilde)
isgraph c is a visible printing character, 0x21 (exclamation) through
0x7E (tilde)
iscntrl c is a delete character, 0x7F, or ordinary control character,
0x0 through 0x1F
isascii c is an ASCII character, 0x0 through 0x7F
Toascii is not a classification macro; it converts its argument to
ASCII range by anding with 0x7F.
If c is an upper case letter, tolower returns the lower case version of
the character; otherwise it returns the original character. Toupper is
similar, returning the upper case version of a character or the origi‐
nal character. Tolower and toupper are functions; _tolower and _toup‐
per are corresponding macros which should only be used when it is known
that the argument is upper case or lower case, respectively.
Alef
These routines are not provided in Alef.
SOURCE
/sys/include/ctype.h
for the macros.
/sys/src/libc/port/ctype.c
for the tables.
BUGS
These macros are ASCII-centric.
CTYPE(2)