1. 字符分类函数
在 C 语言标准库中,有一系列函数是专门用来给字符分类的,也就是判断该字符是什么类型的字符,如:数字字符、字母字符等。这些函数都包含在头文件 ctype.h 中。如下图所示:
这些函数的功能都非常相似,只要传入的字符满足其条件,就返回真,否则返回假。下面使用判断小写字符函数 islower() 来进行演示:
其他字符分类函数同样如此。
1.1 练习
题目: 使用字符分类函数实现把字符串中的小写字母,转换为大写字母。
分析: 首先,遍历字符串,判断当前字符是不是小写字符,如果是小写字符则减 32(在 ASCII 码中,小写字母比对应的大写字母大 32)。
代码如下:
// 头文件
#include <stdio.h>
#include <ctype.h>
int main()
{
// 把字符串中的小写字母转换为大写字母
char tmp[] = "Hello, world.";
// 遍历字符串
int i = 0;
while (tmp[i])
{
// 如果是小写字母,转换为大写
if (islower(tmp[i]))
tmp[i] -= 32;
// 下一个字符
++i;
}
// 输出验证
printf("%s\n", tmp);
return 0;
}
代码运行结果如下:
2. 字母大小写转换函数
下面两个字母转换函数同样包含在头文件 ctype.h 中:
tolower() 函数的功能是传入大写字母,然后返回对应的小写字母,如果不是大写字母则返回原字符。toupper() 函数与其类似。
有了上述这两个函数,就可以把上一个练习给修改一下:
// 头文件
#include <stdio.h>
#include <ctype.h>
int main()
{
// 把字符串中的小写字母转换为大写字母
char tmp[] = "Hello, world.";
// 遍历字符串
int i = 0;
while (tmp[i])
{
// 如果是小写字母,转换为大写
tmp[i] = toupper(tmp[i]);
// 下一个字符
++i;
}
// 输出验证
printf("%s\n", tmp);
return 0;
}