1、 使用字符分类或字符转换的原因
用C程序回答一下下面两个问题,看看你的答案是否和我写的一样
(1) 判断一个字符是否为大写字母
(2) 将一个0-9的数字转换成相应的字符
如果你的答案和上面的类似,很遗憾,这说明你还不是一个合格的C程序员,尽管上面的代码在大部分情况下是正确的...
很多人在做字符判断或转换的时候都忽视了一点:我们的判断方法是基于ASCII字符集的。尽管ASCII相当常用,但并非所有的系统都使用它。当上面的代码运行在IBM的计算机上时,很有可能会得到错误的结果,其原因就是IBM的体系结构使用了EBCDIC编码。
实际上,字符面临的问题远比我们想象的复杂,不同系统对同一个字符的行为解释也有可能是不同的。你是否疑惑过'/r'与'/n'的区别?你是否注意到windows下的回车符在linux/unix下不可识别?
显然,如果要写出移植性好且足够简洁的工业强度程序,那种依赖于特定字符集和特定操作系统行为的字符处理方法,是不可取的。好在C标准库封装了不同字符集和操作系统之间的差异,对外提供了一组统一的字符分类和处理函数,这就是<ctype.h>包含的内容
2、 <ctype.h>简介
待续...