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开始排在一起。

c语言ascii码转换字符串(通过ctype库的字符分类函数来认识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

    分享
    投诉
    首页