【C/C++】字符/字符串函数(0)——由ctype.h提供
零.导言
众所周知,C语言的字符有许多不同的类型,如:数字,字母,标点符号等等等等。
今天,我就给大家讲解一下用于实现字符分类的函数——字符分类函数。
一.什么是字符分类函数?
即实现字符分类的函数,如:当你输入一个字符,这类函数便会帮你判断你输入的字符是否是某一类,如果是,就返回非0的整数;不是,就返回0。
二.字符分类函数有哪些类型?
有以下几种类型:
函数 | 如果它的参数符合下列条件就返回真 |
---|---|
iscntrl | 任何控制字符 |
isspace | 空白字符:空格:' ',换页:'\f',换行:'\n',回车:'\r',制表符:'\t',垂直制表符:'\v' |
isdigit | 十进制数字:'0'~'9' 字符 |
isxdigit | 十六进制数字:'0'~'9' 字符,小写字母'a'~'f',大写字母'A'~'F' |
isupper | 大写字母'A'~'F' |
islower | 小写字母'a'~'f' |
isalpha | 字母'a'~'f','A'~'F' |
isalnum | 字母或数字'0'~'9','a'~'f','A'~'F' |
ispunct | 标点符号,以及不属于数字和字母的可打印图形字符 |
isgraph | 图形字符 |
isprint | 可打印字符 |
这里我简单介绍了11种字符分类函数,我将会详细讲解如何使用这些函数。
三.字符分类函数要如何使用?
请看下列代码:
int main()
{char ret = 0;scanf("%c", &ret);int arr[11] = { 0 };int* p = &arr[0];*p = iscntrl(ret);*(p + 1) = isspace(ret);*(p + 2) = isdigit(ret);*(p + 3) = isxdigit(ret);*(p + 4) = isupper(ret);*(p + 5) = islower(ret);*(p + 6) = isalpha(ret);*(p + 7) = isalnum(ret);*(p + 8) = ispunct(ret);*(p + 9) = isgraph(ret);*(p + 10) = isprint(ret);for (int i = 0; i < 11; i++){if (p[i] != 0){printf("y ");}else{printf("n ");}}return 0;
}
当输入的字符是某一类时,对应的函数就返回非0的整数;如果不是,就返回0。
测试:
显然,'a' 属于十六进制数字,小写字母,字母,字母或数字,图形字符,可打印字符。
四.字符分类函数使用的意义
可以帮助我们快速的对字符进行分类,节省我们写代码的时间。
同时,也让我们的代码变得更加的简短易懂了。
五.字符分类函数的相关链接
【C/C++】字符/字符串函数(1)——由string.h提供-CSDN博客
完