前言:在编程的过程中,我们经常要处理字符和字符串,为了⽅便操作字符和字符串,C语⾔标准库中提供了⼀系列库函数。
一、字符分类函数
C语言中有⼀系列的函数是专⻔做字符分类的,也就是⼀个字符是属于什么类型的字符的。这些函数的使⽤都需要包含⼀个头文件是 ctype.h
代码语言:javascript复制//函数 //如果他的参数符合下列条件就返回真
1、iscntrl 任何控制字符
2、isspace 空白字符:空格 ,换页f,换行n,回车r,水平制表符t,垂直制表符v
3、isdigit 十进制数字0 ~ 9数字字符
4、isxdigit 十六进制数字字符,包括所有十进制数字字符,小写字母a ~ f,大写字母A ~ F
5、islower 小写字母a ~ z
6、isupper 大写字母A ~ Z
7、isalpha 字母a ~ z或A ~ Z
8、isalnum 字母或数字,A ~ Z/a ~ z/0 ~ 9
9、ispunct 标点符号,任何不属于数字或者字母的图形字符(可打印)
10、isgraph 任何图形字符
11、isprint 任何可打印字符,包括图形字符和空白字符
这些函数的使⽤⽅法⾮常类似,我们就讲解⼀个函数的事情,其他的⾮常类似:
代码语言:javascript复制int islower ( int c );
用途:islower 是能够判断参数部分的 c 是否是⼩写字⺟的; 说明:通过返回值来说明是否是⼩写字⺟,如果是⼩写字⺟就返回非0的整数,如果不是⼩写字⺟,则返回0。
代码语言:javascript复制//判断大小写
#include<stdio.h>
int main()
{
int ch = getchar();
if (ch >= 'A' && ch <= 'Z')
{
printf("大写n");
}
else if (ch >= 'a' && ch <= 'z')
{
printf("小写n");
}
return 0;
}
练习:
写⼀个代码,将字符串中的⼩写字⺟转大写,其他字符不变。
代码语言:javascript复制#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 -= 32;
putchar(c);
i ;
}
return 0;
}
二、字符转换函数
C语⾔提供了2个字符转换函数:
代码语言:javascript复制int tolower ( int c ); //将参数传进去的⼤写字⺟转⼩写
int toupper ( int c ); //将参数传进去的⼩写字⺟转⼤写
上面的代码,我们将小写转⼤写,是 -32 完成的效果,有了转换函数,就可以直接使用 tolower 函 数。
练习:
代码语言:javascript复制#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;
}
三、strlen(字符个数)
代码语言:javascript复制#include<string.h>
size_t strlen ( const char * str );
• 字符串以 '