146 lines
6.1 KiB
C
146 lines
6.1 KiB
C
#include<ctype.h>
|
|
|
|
unsigned char _ctype[256] =
|
|
{
|
|
0, // -1 EOF
|
|
_CTYPE_ISCONTROL, // 00 (NUL)
|
|
_CTYPE_ISCONTROL, // 01 (SOH)
|
|
_CTYPE_ISCONTROL, // 02 (STX)
|
|
_CTYPE_ISCONTROL, // 03 (ETX)
|
|
_CTYPE_ISCONTROL, // 04 (EOT)
|
|
_CTYPE_ISCONTROL, // 05 (ENQ)
|
|
_CTYPE_ISCONTROL, // 06 (ACK)
|
|
_CTYPE_ISCONTROL, // 07 (BEL)
|
|
_CTYPE_ISCONTROL, // 08 (BS)
|
|
_CTYPE_ISSPACE+_CTYPE_ISCONTROL, // 09 (HT)
|
|
_CTYPE_ISSPACE+_CTYPE_ISCONTROL, // 0A (LF)
|
|
_CTYPE_ISSPACE+_CTYPE_ISCONTROL, // 0B (VT)
|
|
_CTYPE_ISSPACE+_CTYPE_ISCONTROL, // 0C (FF)
|
|
_CTYPE_ISSPACE+_CTYPE_ISCONTROL, // 0D (CR)
|
|
_CTYPE_ISCONTROL, // 0E (SI)
|
|
_CTYPE_ISCONTROL, // 0F (SO)
|
|
_CTYPE_ISCONTROL, // 10 (DLE)
|
|
_CTYPE_ISCONTROL, // 11 (DC1)
|
|
_CTYPE_ISCONTROL, // 12 (DC2)
|
|
_CTYPE_ISCONTROL, // 13 (DC3)
|
|
_CTYPE_ISCONTROL, // 14 (DC4)
|
|
_CTYPE_ISCONTROL, // 15 (NAK)
|
|
_CTYPE_ISCONTROL, // 16 (SYN)
|
|
_CTYPE_ISCONTROL, // 17 (ETB)
|
|
_CTYPE_ISCONTROL, // 18 (CAN)
|
|
_CTYPE_ISCONTROL, // 19 (EM)
|
|
_CTYPE_ISCONTROL, // 1A (SUB)
|
|
_CTYPE_ISCONTROL, // 1B (ESC)
|
|
_CTYPE_ISCONTROL, // 1C (FS)
|
|
_CTYPE_ISCONTROL, // 1D (GS)
|
|
_CTYPE_ISCONTROL, // 1E (RS)
|
|
_CTYPE_ISCONTROL, // 1F (US)
|
|
_CTYPE_ISSPACE+_CTYPE_ISBLANK, // 20 SPACE
|
|
_CTYPE_ISPUNCT, // 21 !
|
|
_CTYPE_ISPUNCT, // 22 "
|
|
_CTYPE_ISPUNCT, // 23 #
|
|
_CTYPE_ISPUNCT, // 24 $
|
|
_CTYPE_ISPUNCT, // 25 %
|
|
_CTYPE_ISPUNCT, // 26 &
|
|
_CTYPE_ISPUNCT, // 27 '
|
|
_CTYPE_ISPUNCT, // 28 (
|
|
_CTYPE_ISPUNCT, // 29 )
|
|
_CTYPE_ISPUNCT, // 2A *
|
|
_CTYPE_ISPUNCT, // 2B +
|
|
_CTYPE_ISPUNCT, // 2C ,
|
|
_CTYPE_ISPUNCT, // 2D -
|
|
_CTYPE_ISPUNCT, // 2E .
|
|
_CTYPE_ISPUNCT, // 2F /
|
|
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 30 0
|
|
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 31 1
|
|
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 32 2
|
|
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 33 3
|
|
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 34 4
|
|
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 35 5
|
|
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 36 6
|
|
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 37 7
|
|
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 38 8
|
|
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 39 9
|
|
_CTYPE_ISPUNCT, // 3A :
|
|
_CTYPE_ISPUNCT, // 3B ;
|
|
_CTYPE_ISPUNCT, // 3C <
|
|
_CTYPE_ISPUNCT, // 3D =
|
|
_CTYPE_ISPUNCT, // 3E >
|
|
_CTYPE_ISPUNCT, // 3F ?
|
|
_CTYPE_ISPUNCT, // 40 @
|
|
_CTYPE_ISUPPER+_CTYPE_ISHEX, // 41 A
|
|
_CTYPE_ISUPPER+_CTYPE_ISHEX, // 42 B
|
|
_CTYPE_ISUPPER+_CTYPE_ISHEX, // 43 C
|
|
_CTYPE_ISUPPER+_CTYPE_ISHEX, // 44 D
|
|
_CTYPE_ISUPPER+_CTYPE_ISHEX, // 45 E
|
|
_CTYPE_ISUPPER+_CTYPE_ISHEX, // 46 F
|
|
_CTYPE_ISUPPER, // 47 G
|
|
_CTYPE_ISUPPER, // 48 H
|
|
_CTYPE_ISUPPER, // 49 I
|
|
_CTYPE_ISUPPER, // 4A J
|
|
_CTYPE_ISUPPER, // 4B K
|
|
_CTYPE_ISUPPER, // 4C L
|
|
_CTYPE_ISUPPER, // 4D M
|
|
_CTYPE_ISUPPER, // 4E N
|
|
_CTYPE_ISUPPER, // 4F O
|
|
_CTYPE_ISUPPER, // 50 P
|
|
_CTYPE_ISUPPER, // 51 Q
|
|
_CTYPE_ISUPPER, // 52 R
|
|
_CTYPE_ISUPPER, // 53 S
|
|
_CTYPE_ISUPPER, // 54 T
|
|
_CTYPE_ISUPPER, // 55 U
|
|
_CTYPE_ISUPPER, // 56 V
|
|
_CTYPE_ISUPPER, // 57 W
|
|
_CTYPE_ISUPPER, // 58 X
|
|
_CTYPE_ISUPPER, // 59 Y
|
|
_CTYPE_ISUPPER, // 5A Z
|
|
_CTYPE_ISPUNCT, // 5B [
|
|
_CTYPE_ISPUNCT, // 5C backslash
|
|
_CTYPE_ISPUNCT, // 5D ]
|
|
_CTYPE_ISPUNCT, // 5E ^
|
|
_CTYPE_ISPUNCT, // 5F _
|
|
_CTYPE_ISPUNCT, // 60 `
|
|
_CTYPE_ISLOWER+_CTYPE_ISHEX, // 61 a
|
|
_CTYPE_ISLOWER+_CTYPE_ISHEX, // 62 b
|
|
_CTYPE_ISLOWER+_CTYPE_ISHEX, // 63 c
|
|
_CTYPE_ISLOWER+_CTYPE_ISHEX, // 64 d
|
|
_CTYPE_ISLOWER+_CTYPE_ISHEX, // 65 e
|
|
_CTYPE_ISLOWER+_CTYPE_ISHEX, // 66 f
|
|
_CTYPE_ISLOWER, // 67 g
|
|
_CTYPE_ISLOWER, // 68 h
|
|
_CTYPE_ISLOWER, // 69 i
|
|
_CTYPE_ISLOWER, // 6A j
|
|
_CTYPE_ISLOWER, // 6B k
|
|
_CTYPE_ISLOWER, // 6C l
|
|
_CTYPE_ISLOWER, // 6D m
|
|
_CTYPE_ISLOWER, // 6E n
|
|
_CTYPE_ISLOWER, // 6F o
|
|
_CTYPE_ISLOWER, // 70 p
|
|
_CTYPE_ISLOWER, // 71 q
|
|
_CTYPE_ISLOWER, // 72 r
|
|
_CTYPE_ISLOWER, // 73 s
|
|
_CTYPE_ISLOWER, // 74 t
|
|
_CTYPE_ISLOWER, // 75 u
|
|
_CTYPE_ISLOWER, // 76 v
|
|
_CTYPE_ISLOWER, // 77 w
|
|
_CTYPE_ISLOWER, // 78 x
|
|
_CTYPE_ISLOWER, // 79 y
|
|
_CTYPE_ISLOWER, // 7A z
|
|
_CTYPE_ISPUNCT, // 7B {
|
|
_CTYPE_ISPUNCT, // 7C +
|
|
_CTYPE_ISPUNCT, // 7D }
|
|
_CTYPE_ISPUNCT, // 7E ~
|
|
_CTYPE_ISCONTROL, // 7F (DEL)
|
|
// and the rest are 0...
|
|
};
|
|
|
|
|
|
int toupper(int c)
|
|
{
|
|
return ((islower(c)) ? (c-'a'+'A') : c);
|
|
}
|
|
|
|
int tolower(int c)
|
|
{
|
|
return((isupper(c)) ? (c-'A'+'a') : c);
|
|
} |