c语言ascii码转换字符串(通过ctype库的字符分类函数来认识128个ASCII字符及其编码规律)
128个ASCII字符(不可打印(控制)或可打印字符)的分类可用以下函数(在类库<cctype>中)区分:
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\n",'a'-'A'); // 32, 100000b
printf("%c\n",'a'^32); // A, 1000001^100000,相当于加32
printf("%c\n",'A'^32); // a, 1100001^100000,相当于减32
-End-
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com