#define _U 0x01 /* upper */
#define _L 0x02 /* lower */
#define _D 0x04 /* digit */
#define _C 0x08 /* cntrl */
#define _P 0x10 /* punct */
#define _S 0x20 /* white space (space/lf/tab) */
#define _X 0x40 /* hex digit */
#define _SP 0x80 /* hard space (0x20) */
 
unsigned char _ctype[] = {0x00,   /* EOF */
_C,_C,_C,_C,_C,_C,_C,_C,   /* 0-7 */
_C,_C|_S,_C|_S,_C|_S,_C|_S,_C|_S,_C,_C,  /* 8-15 */
_C,_C,_C,_C,_C,_C,_C,_C,   /* 16-23 */
_C,_C,_C,_C,_C,_C,_C,_C,   /* 24-31 */
_S|_SP,_P,_P,_P,_P,_P,_P,_P,   /* 32-39 */
_P,_P,_P,_P,_P,_P,_P,_P,   /* 40-47 */
_D,_D,_D,_D,_D,_D,_D,_D,   /* 48-55 */
_D,_D,_P,_P,_P,_P,_P,_P,   /* 56-63 */
_P,_U|_X,_U|_X,_U|_X,_U|_X,_U|_X,_U|_X,_U, /* 64-71 */
_U,_U,_U,_U,_U,_U,_U,_U,   /* 72-79 */
_U,_U,_U,_U,_U,_U,_U,_U,   /* 80-87 */
_U,_U,_U,_P,_P,_P,_P,_P,   /* 88-95 */
_P,_L|_X,_L|_X,_L|_X,_L|_X,_L|_X,_L|_X,_L, /* 96-103 */
_L,_L,_L,_L,_L,_L,_L,_L,   /* 104-111 */
_L,_L,_L,_L,_L,_L,_L,_L,   /* 112-119 */
_L,_L,_L,_P,_P,_P,_P,_C,   /* 120-127 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 128-143 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 144-159 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 160-175 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 176-191 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 192-207 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 208-223 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 224-239 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};  /* 240-255 */
 
 
#define isalnum(c) ((_ctype+1)[c]&(_U|_L|_D))
#define isalpha(c) ((_ctype+1)[c]&(_U|_L))
#define iscntrl(c) ((_ctype+1)[c]&(_C))
#define isdigit(c) ((_ctype+1)[c]&(_D))
#define isgraph(c) ((_ctype+1)[c]&(_P|_U|_L|_D))
#define islower(c) ((_ctype+1)[c]&(_L))
#define isprint(c) ((_ctype+1)[c]&(_P|_U|_L|_D|_SP))
#define ispunct(c) ((_ctype+1)[c]&(_P))
#define isspace(c) ((_ctype+1)[c]&(_S))
#define isupper(c) ((_ctype+1)[c]&(_U))
#define isxdigit(c) ((_ctype+1)[c]&(_D|_X))
 
 
附:ASCII表
Bin       Dec     Hex       缩写/字符                                   解释
0000 0000 0       00          NUL (null)                                空字符
0000 0001 1       01          SOH (start of handing)                    标题开始  
0000 0010 2       02          STX (start of text)                       正文开始  
0000 0011 3       03          ETX (end of text)                         正文结束
0000 0100 4       04          EOT (end of transmission)                传输结束  
0000 0101 5       05          ENQ (enquiry)                            请求  
0000 0110 6       06          ACK (acknowledge)                        收到通知  
0000 0111 7       07          BEL (bell)                               响铃
0000 1000 8       08          BS (backspace)                           退格  
0000 1001 9       09          HT (horizontal tab)                      水平制表符  
0000 1010 10        0A          LF (NL line feed, new line)            换行键  
0000 1011 11        0B          VT (vertical tab)                      垂直制表符  
0000 1100 12        0C          FF (NP form feed, new page)            换页键  
0000 1101 13        0D          CR (carriage return)                   回车键
0000 1110 14        0E          SO (shift out)                         不用切换  
0000 1111 15        0F          SI (shift in)                          启用切换  
0001 0000 16        10          DLE (data link escape)                数据链路转义  
0001 0001 17        11          DC1 (device control 1)                设备控制1  
0001 0010 18        12          DC2 (device control 2)                设备控制2  
0001 0011 19        13          DC3 (device control 3)                设备控制3  
0001 0100 20        14          DC4 (device control 4)                设备控制4  
0001 0101 21        15          NAK (negative acknowledge)        拒绝接收  
0001 0110 22        16          SYN (synchronous idle)                 同步空闲  
0001 0111 23        17          ETB (end of trans. block)              传输块结束  
0001 1000 24        18          CAN (cancel)                               取消
0001 1001 25        19          EM (end of medium)                   介质中断  
0001 1010 26        1A          SUB (substitute)                         替补  
0001 1011 27        1B          ESC (escape)                                溢出  
0001 1100 28        1C          FS (file separator)                   文件分割符  
0001 1101 29        1D          GS (group separator)                    分组符  
0001 1110 30        1E          RS (record separator)                记录分离符  
0001 1111 31        1F          US (unit separator)                      单元分隔符  

0010 0000 32        20          空格
0010 0001 33        21          !
0010 0010 34        22          "
0010 0011 35        23          #
0010 0100 36        24          $
0010 0101 37        25          %
0010 0110 38        26          &
0010 0111 39        27          '
0010 1000 40        28          (
0010 1001 41        29          )
0010 1010 42        2A          *
0010 1011 43        2B          +
0010 1100 44        2C          ,
0010 1101 45        2D          -
0010 1110 46        2E          .
0010 1111 47        2F          /
0011 0000 48        30          0
0011 0001 49        31          1
0011 0010 50        32          2
0011 0011 51        33          3
0011 0100 52        34          4
0011 0101 53        35          5
0011 0110 54        36          6
0011 0111 55        37          7
0011 1000 56        38          8
0011 1001 57        39          9
0011 1010 58        3A          :
0011 1011 59        3B          ;
0011 1100 60        3C          <
0011 1101 61        3D          =
0011 1110 62        3E          >
0011 1111 63        3F          ?
0100 0000 64        40          @

0100 0001 65        41          A
0100 0010 66        42          B
0100 0011 67        43          C
0100 0100 68        44          D
0100 0101 69        45          E
0100 0110 70        46          F
0100 0111 71        47          G
0100 1000 72        48          H
0100 1001 73        49          I
0100 1010 74        4A          J
0100 1011 75        4B          K
0100 1100 76        4C          L
0100 1101 77        4D          M
0100 1110 78        4E          N
0100 1111 79        4F          O
0101 0000 80        50          P
0101 0001 81        51          Q
0101 0010 82        52          R
0101 0011 83        53          S
0101 0100 84        54          T
0101 0101 85        55          U
0101 0110 86        56          V
0101 0111 87        57          W
0101 1000 88        58          X
0101 1001 89        59          Y
0101 1010 90        5A          Z
0101 1011 91        5B          [
0101 1100 92        5C          \
0101 1101 93        5D          ]
0101 1110 94        5E          ^
0101 1111 95        5F          _
0110 0000 96        60          `

0110 0001 97        61          a
0110 0010 98        62          b
0110 0011 99        63          c
0110 0100 100    64          d
0110 0101 101    65          e
0110 0110 102    66          f
0110 0111 103    67          g
0110 1000 104    68          h
0110 1001 105    69          i
0110 1010 106    6A          j
0110 1011 107    6B          k
0110 1100 108    6C          l
0110 1101 109    6D          m
0110 1110 110    6E          n
0110 1111 111    6F          o
0111 0000 112    70          p
0111 0001 113    71          q
0111 0010 114    72          r
0111 0011 115    73          s
0111 0100 116    74          t
0111 0101 117    75          u
0111 0110 118    76          v
0111 0111 119    77          w
0111 1000 120    78          x
0111 1001 121    79          y
0111 1010 122    7A          z
0111 1011 123    7B          {
0111 1100 124    7C          |
0111 1101 125    7D          }
0111 1110 126    7E          ~  

0111 1111 127    7F          DEL (delete)                                删除   


 

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(709) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐