128个ASCII字符(不可打印(控制)或可打印字符)的分类可用以下函数(在类库中)区分:
isalnum() Check if character is alphanumeric (function )
isalpha() Check if character is alphabetic (function )
isblank() Check if character is blank (function )
iscntrl() Check if character is a control character (function )
isdigit() Check if character is decimal digit (function )
isgraph() Check if character has graphical representation (function )
islower() Check if character is lowercase letter (function )
isprint() Check if character is printable (function )
ispunct() Check if character is a punctuation character (function )
isspace() Check if character is a white-space (function )
isupper() Check if character is uppercase letter (function )
isxdigit() Check if character is hexadecimal digit (function )
128个ASCII字符的编码并非毫无规律,按十六进制编码去看,非打印控制字符编排在前面,数字、大写字母、小写字母都是一个取整的十六进制数+1开始排在一起。
可打印标点符号(punctuation,上图红色字体)被数字、大写字母、小写字母分成了四块。
如果你去考虑字母大小写的转换,你会看到其编码的精心安排之处:
printf("%d",'a'-'A'); // 32, 100000bprintf("%c",'a'^32); // A, 1000001^100000,相当于加32printf("%c",'A'^32); // a, 1100001^100000,相当于减32
-End-