ctype.h 1.8 KB

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