功能:处理Ascii字符,对是否为控制字符,空白字符,字母,数字,标调符号,大小写等作出判断。这个类的实现是通过一个静态数组实现的,下表是Ascii值,数组里放着这个元素的属性。
Public方法
static bool isAscii(int ch); /* 是否为Ascii,即[0...127] */ static bool isSpace(int ch); /* 是否为空白符,水平制表,换行,垂直制表,换页,回车 ,空格*/ static bool isDigit(int ch); /* 是否为数字,0...9 */ static bool isHexDigit(int ch); /* 0...9 , a...f , A...F */ static bool isPunct(int ch); /* 标点符号 */ static bool isAlpha(int ch); /* 字母 */ static bool isAlphaNumeric(int ch); /* 字母或数字 */ static bool isLower(int ch); static bool isUpper(int ch); static int toLower(int ch); static int toUpper(int ch);空格是可以print的,但是不能graph
const int Ascii::CHARACTER_PROPERTIES[128] = { /* 00 . */ ACP_CONTROL, /* 01 . */ ACP_CONTROL, /* 02 . */ ACP_CONTROL, /* 03 . */ ACP_CONTROL, /* 04 . */ ACP_CONTROL, /* 05 . */ ACP_CONTROL, /* 06 . */ ACP_CONTROL, /* 07 . */ ACP_CONTROL, /* 08 . */ ACP_CONTROL, /* 09 . */ ACP_CONTROL | ACP_SPACE, /* 0a . */ ACP_CONTROL | ACP_SPACE, /* 0b . */ ACP_CONTROL | ACP_SPACE, /* 0c . */ ACP_CONTROL | ACP_SPACE, /* 0d . */ ACP_CONTROL | ACP_SPACE, /* 0e . */ ACP_CONTROL, /* 0f . */ ACP_CONTROL, /* 10 . */ ACP_CONTROL, /* 11 . */ ACP_CONTROL, /* 12 . */ ACP_CONTROL, /* 13 . */ ACP_CONTROL, /* 14 . */ ACP_CONTROL, /* 15 . */ ACP_CONTROL, /* 16 . */ ACP_CONTROL, /* 17 . */ ACP_CONTROL, /* 18 . */ ACP_CONTROL, /* 19 . */ ACP_CONTROL, /* 1a . */ ACP_CONTROL, /* 1b . */ ACP_CONTROL, /* 1c . */ ACP_CONTROL, /* 1d . */ ACP_CONTROL, /* 1e . */ ACP_CONTROL, /* 1f . */ ACP_CONTROL, /* 20 */ ACP_SPACE | ACP_PRINT, /* 21 ! */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 22 " */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 23 # */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 24 $ */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 25 % */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 26 & */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 27 ' */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 28 ( */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 29 ) */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 2a * */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 2b + */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 2c , */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 2d - */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 2e . */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 2f / */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 30 0 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT, /* 31 1 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT, /* 32 2 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT, /* 33 3 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT, /* 34 4 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT, /* 35 5 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT, /* 36 6 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT, /* 37 7 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT, /* 38 8 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT, /* 39 9 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT, /* 3a : */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 3b ; */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 3c < */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 3d = */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 3e > */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 3f ? */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 40 @ */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 41 A */ ACP_HEXDIGIT | ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 42 B */ ACP_HEXDIGIT | ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 43 C */ ACP_HEXDIGIT | ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 44 D */ ACP_HEXDIGIT | ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 45 E */ ACP_HEXDIGIT | ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 46 F */ ACP_HEXDIGIT | ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 47 G */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 48 H */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 49 I */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 4a J */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 4b K */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 4c L */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 4d M */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 4e N */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 4f O */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 50 P */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 51 Q */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 52 R */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 53 S */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 54 T */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 55 U */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 56 V */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 57 W */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 58 X */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 59 Y */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 5a Z */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT, /* 5b [ */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 5c \ */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 5d ] */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 5e ^ */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 5f _ */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 60 ` */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 61 a */ ACP_HEXDIGIT | ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 62 b */ ACP_HEXDIGIT | ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 63 c */ ACP_HEXDIGIT | ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 64 d */ ACP_HEXDIGIT | ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 65 e */ ACP_HEXDIGIT | ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 66 f */ ACP_HEXDIGIT | ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 67 g */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 68 h */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 69 i */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 6a j */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 6b k */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 6c l */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 6d m */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 6e n */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 6f o */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 70 p */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 71 q */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 72 r */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 73 s */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 74 t */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 75 u */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 76 v */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 77 w */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 78 x */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 79 y */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 7a z */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT, /* 7b { */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 7c | */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 7d } */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 7e ~ */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT, /* 7f . */ ACP_CONTROL };