文章目录
- 字符分类函数
- 字符转换函数
本章内容主要讲的是c语言中的字符相关的一些函数的作用用法和使用
为了方便我们对字符的各种操作,C语⾔标准库中提供了⼀系列库函数,我们大概可以根据其功能分成两类函数
字符分类函数
C语言中有一系列函数是专门用于字符分类的,也就是判断一个字符属于是属于什么类型的字符
这些函数的使用都需要包含一个头文件: ctype.h
函数 | 若参数符合下列条件则返回真 |
---|---|
iscntrl | 任何控制字符 |
isspace | 空白字符: 空格和‘ ’ ,换页‘\f’,换行’\n’,回车’\r’,制表符’\t’或者垂直制表符’\v’ |
isdigit | 十进制数字 0-9 |
isxdigitl | 十六进制数字,包括所有十进制数字,小写字母a-f,大写字母A-F |
islowerl | 小写字母a-z |
isupper | 大写字母A-Z |
isalpha | 字母a-z或A-Z |
isalnum | 字母或者数字,a-z, A-Z,0-9 |
ispunct | 标点符号,任何不属于数字或者字母的图形字符(可打印) |
isgraph | 任何图形字符 |
isprint | 任何可打印字符,包括图形字符和空白字符 |
例如 :我们来使用一下函数 isdigit
我们这里的字符是十进制数字7,所以返回值为真,即非0
那么如果我们将字符7 换成 字符a
那么输出的结果为假,即为0
其它函数的用法都是类似的,可以自行去实践使用
例题:
写⼀个代码,将字符串中的小写字母转大写,其他字符不变。
#include <stdio.h> #include <ctype.h> int main() { int i = 0; char str[] = "Hello Fallzzzzz\n"; char c; while (str[i]) { c = str[i]; if(islower(c)) { c -= 32; } putchar(c); ++i; } return 0; }
使用我们学习到的知识,islower(c)
能够判断一个字符是否是a-z,如果是则为真,则进入到if语句中。
这里的putchar是输出字符的函数,即一个字符一个字符的输出
所以输出结果为:
字符转换函数
C语⾔提供了2个字符转换函数:
int tolower ( int c ); //将参数传进去的大写字母转小写
int toupper ( int c ); //将参数传进去的小写字母转大写
再根据上面的例题,上面的例题中我们想要将字符从小写转化为大写,使用的是c -= 32;
的方法,那我们有了转换函数的话,那当然就可以直接使用啦!
例题:
#include <stdio.h> #include <ctype.h> int main() { int i = 0; char str[] = "Hello Fallzzzzz\n"; char c; while (str[i]) { c = str[i]; if (islower(c)) { c = toupper(c); //使用转换函数 } putchar(c); ++i; } return 0; }
这样能达到同样的输出效果:
以上就是字符相关的库函数啦,适当的使用这些库函数能够提高我们的工作效率