前序
C语言中刚学条件判断 if 语句时,就有一行这样的代码
if( ch >= 'a' && ch <= 'z' ) // 判断该字符是否为小写
当初觉得平平无奇,直到在《C与指针》中看见标准库“ctype.h” 介绍中的一句话:
于是便开始思考这条判断语句的健壮性,随机决定学习“ctype.h” 库。
该库大致分为两部分,第一部分是字符的分类函数,第二类是字符的转换函数。
字符分类函数
使用以上函数,返回值的类型为整型。 若真则返回一个大于0 的数, 否则返回0.
char ch = 'a';
printf("d\n", isupper( ch )); // 判断是否为大写
printf("%d\n", islower(ch)); // 是否为小写
判断为真时,返回值是一个大于0 的随机数。
字符转换函数
根据意思可以看出,第一个是转化为小写,第二个是转化为大写。
char ch = (char) tolower('A');
printf("ch \c", ch);
注意, tolower 与 toupper 的返回值为整形, 因此需要强制类型转化为字符型,否则系统就将字符型的变量强制转化整形变量。