字符分类函数
函数 | 如果他的参数符合下列条件就返回真 |
iscntrl | 任何控制字符 |
isspace | 空白字符:空格‘ ’,换页‘\f’,换行‘\n’,回车‘\r’,制表符‘\t’或者垂直制表符‘\v’ |
isdigit | 十进制数字0~9 |
isxdigit | 十六进制数字,包括所有十进制数字,小写字母a~f,大写字母A~F |
islower | 小写字母a~z |
isupper | 大写字母A~Z |
isalpha | 字母a~z或A~Z |
isalnum | 字母或数字,a~z,A~Z,0~9 |
ispunct | 标点符号,任何不属于数字或者字母的图形符(可打印的) |
isgraph | 任何图形字符 |
isprint | 任何可打印字符,包括图形字符和空白字符 |
例:isdigit
如果是数字字符,返回非0的值;如果不是数字字符,则返回0
![](https://i-blog.csdnimg.cn/blog_migrate/4dded26d789667ff236a1aa4f3d35e2b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c5a7bbad3868d0c96ca2fda8b61140d1.png)
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch1 = '&';
int ret = isdigit(ch1);
printf("%d\n\n", ret);//非数字字符,返回0
char ch2 = '2';
ret = isdigit(ch2);
printf("%d\n", ret);//数字字符,返回非0的值
return 0;
}
运行结果为:
![](https://i-blog.csdnimg.cn/blog_migrate/29d56ccd267cae184e74d5e8d552ef81.png)
其他函数的用法大致相同
字符转换函数
函数 | 作用 |
tolower | 将大写字转换为小写字母 |
toupper | 将小写字母转换为大写字母 |
tolower
![](https://i-blog.csdnimg.cn/blog_migrate/1733c22e3bfafc7966191b4187443258.png)
![](https://i-blog.csdnimg.cn/blog_migrate/83a8d825847d2cba06c95935c280dfdf.png)
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch[20] = { 0 };
scanf("%s", ch);
int i = 0;
while (ch[i])
{
if (isupper(ch[i]))
ch[i] = tolower(ch[i]);
printf("%c ", ch[i]);
i++;
}
return 0;
}
输入:abCDeFG
运行结果为:
![](https://i-blog.csdnimg.cn/blog_migrate/9e79384cdf3ee73b8d577bc911133808.png)
toupper
![](https://i-blog.csdnimg.cn/blog_migrate/a00b5afb29b949e53c05b45e4a0fe283.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3464131416a8fc67f6ddcc8c8fb5de7c.png)
用法与tolower相同
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch[20] = { 0 };
scanf("%s", ch);
int i = 0;
while (ch[i])
{
if (islower(ch[i]))
ch[i] = toupper(ch[i]);
printf("%c ", ch[i]);
i++;
}
return 0;
}
输入:indispensable
运行结果为:
![](https://i-blog.csdnimg.cn/blog_migrate/35ad2e158204f0841558086aafa6e737.png)