1、字符分类函数
C语言有⼀系列的函数是专门做字符分类的,也就是⼀个字符是属于什么类型的字符的。 这些函数的使用都需要包含⼀个头文件是
ctype.h
函数 | 如果他的参数符合下列条件就返回真 |
iscntrl | 任何控制字符 |
isspace | 空白字符:空格 ‘ ’ ,换页‘\f’ ,换行‘\n’,回车'\r',制表符‘\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 | 任何可打印字符,包括图形字符和空白字符 |
例如:
int isdigit(int c);
isdigit的作用是判断一个字符是否是数字。如果是数字,返回非零值(True),否则返回0(False)
示例
#include <iostream>
#include <ctype.h>
using namespace std;
int main() {
char c = '9';
if (isdigit(c)) {
cout << c << " 是数字" << endl;
} else {
cout << c << " 不是数字" << endl;
}
c = 'a';
if (isdigit(c)) {
cout << c << " 是数字" << endl;
} else {
cout << c << " 不是数字" << endl;
}
return 0;
}
结果:
9 是数字
a 不是数字
2、字符转换函数
C语言提供了2个字符转换函数:
int tolower ( int c ); //将参数传进去的大写字母转小写
int toupper ( int c ); //将参数传进去的小写字母转大写
上面的代码,我们将小写转大写,是ASCALL上-32完成的效果,有了转换函数,就可以直接使用 tolower 函 数。
#include <stdio.h>
#include <ctype.h>
int main ()
{
int i = 0;
char str[] = "Test String.\n";
char c;
while (str[i])
{
c = str[i];
if (islower(c))
c = toupper(c);
putchar(c);
i++;
}
return 0;
}