2 * ctype.h - character handling
4 /* $Id: ctype.h,v 1.6 1994/06/24 11:40:29 ceriel Exp $ */
9 extern char __ctype[]; /* located in chartab.c */
11 #define _U 0x01 /* this bit is for upper-case letters [A-Z] */
12 #define _L 0x02 /* this bit is for lower-case letters [a-z] */
13 #define _N 0x04 /* this bit is for numbers [0-9] */
14 #define _S 0x08 /* this bit is for white space \t \n \f etc */
15 #define _P 0x10 /* this bit is for punctuation characters */
16 #define _C 0x20 /* this bit is for control characters */
17 #define _X 0x40 /* this bit is for hex digits [a-f] and [A-F]*/
19 int isalnum(int _c); /* alphanumeric [a-z], [A-Z], [0-9] */
20 int isalpha(int _c); /* alphabetic */
21 int iscntrl(int _c); /* control characters */
22 int isdigit(int _c); /* digit [0-9] */
23 int isgraph(int _c); /* graphic character */
24 int islower(int _c); /* lower-case letter [a-z] */
25 int isprint(int _c); /* printable character */
26 int ispunct(int _c); /* punctuation mark */
27 int isspace(int _c); /* white space sp, \f, \n, \r, \t, \v */
28 int isupper(int _c); /* upper-case letter [A-Z] */
29 int isxdigit(int _c); /* hex digit [0-9], [a-f], [A-F] */
30 int tolower(int _c); /* convert to lower case character */
31 int toupper(int _c); /* convert to upper case character */
33 #define isalpha(c) ((__ctype+1)[c]&(_U|_L))
34 #define isspace(c) ((__ctype+1)[c]&_S)
35 #define iscntrl(c) ((__ctype+1)[c]&_C)
36 #define isxdigit(c) ((__ctype+1)[c]&(_N|_X))
37 #define isalnum(c) ((__ctype+1)[c]&(_U|_L|_N))
38 #define isgraph(c) ((__ctype+1)[c]&(_P|_U|_L|_N))
39 #define ispunct(c) ((__ctype+1)[c]&_P)
41 #define isdigit(c) ((unsigned) ((c)-'0') < 10)
42 #define islower(c) ((unsigned) ((c)-'a') < 26)
43 #define isupper(c) ((unsigned) ((c)-'A') < 26)
44 #define isprint(c) ((unsigned) ((c)-' ') < 95)
45 #define isascii(c) ((unsigned) (c) < 128)