目录
在编程时,我们经常要处理字符和字符串,为了方便操作字符和字符串,C语言标准库提供了一些库函数使用,接下来就一起来学习这些函数吧。
1.字符分类函数
C语言中有一系列的函数是专门做字符分类的,也就是一个字符是属于什么类型的字符。
这些函数的使用都需要包含一个头文件是<ctype.h>。
这些函数的使用非常类似,下面我i们就一使用 islower函数为例。
1-1 函数原型:
islower函数是能够判断参数部分的c是否为小写字母。
通过返回值来说明是否为小写字母,如果是小写字母就返回非0的整数,不是小写字母就返回0。
写一段代码,将字符串中的小写字母转为大写字母,其他字符不变
曾经我们是这样写的:
输出结果:
现在,使用这个函数就可以轻易,快速的实现。
1-2 islower函数使用
代码如下:
输出结果:
会了islower函数的使用,我相信 isupper 函数你也会了。
看看下面的代码吧,老铁。
1-3 isupper函数使用
输出结果:
2.字符转换函数
C语言提供了两个字符转换函数。
分别是:tolower函数和toupper函数
tolower函数功能:将大写字母转为小写字母
2-1 tolower函数原型:
toupper函数功能:将小写字母转为大写字母
2-2 toupper函数原型:
实践一下
首先试着用ASCII码值实现字母小写转大写吧,
输出结果:
老铁试着用,上述的函数实现这个功能吧,
代码如下:
输出结果:
在试试实现大写转小写吧!!
输出结果:
3.strlen函数的使用与模拟实现
strlen函数
3-1 函数原型:
1、求的是字符串的长度,统计的是字符串中 \0 之前的字符个数。
2、字符串以 ‘ \0 ’作为结束标志,strlen函数返回的是字符串中\0之前出现的字符个数(不包含 \0 )。
3、参数指向的字符串必须要以‘ \0 ’结束。
4、注意函数的返回值是size_t类型的。(无符号整型即数值只包含0和正整数)
5、strlen函数的使用需要包含对应的头文件。(<string.h>)
3-2 模拟实现方法
3-2-1计数器的方式
输出结果:
3-2-1 指针-指针
输出结果:
3-2-3 递归的方式
输出结果:
4.strcpy函数的使用与模拟实现(安全系数不高)
为什么?arr1==arr2不行?
分析:数组名是地址,就是一个常量的值。
strcpy==string copy (字符串拷贝)
函数参数 dest—目的地,src—源头。
4-1 函数原型:
1、源字符串必须以‘ \0 ’结束。
2、会将源字符串中的‘ \0 '拷贝到目标空间。
3、目标空间要保证足够的,以确保能存放源字符串。
4、目标空间必须可修改。
4-2 strcpy函数使用
输出结果:
模拟实现:
输出结果:
5.strcmp函数的使用与模拟(安全系数不高)
类比arr1==arr2
比较的是地址
如果要比较两个字符串的内容,就需要使用strcmp函数
5-1函数原型:
返回值:
规定:1、第一个字符串大于第二个字符串返回大于0的数字,
2、第一个字符串小于第二个字符串返回小于0的数字,
3、第一个字符串等于第二个字符串返回数字0。
那么如何比较两个字符串?
方法是比较两个字符串中对应位置上字符ASCII码值的大小。
strcmp函数使用
5-2模拟实现
5-2-1方法1、
输出结果:
5-2-2方法2、
输出结果:
6.strcat函数的使用与模拟(安全系数不高)
strcat函数是用来连接字符串的,追加字符串。
6-1函数原型:
函数返回的是目标空间的起始地址
1、源字符串必须以‘ \0 ’结束。
2、目标空间也得有’ \0 ',否则没法知道追加从哪里开始。
3、目标空间要保证足够的大,以确保能存放源字符串的内容。
4、目标空间必须可修改。
提个小问题自己追加自己什么样的呢?思考一下吧。
6-2 strcat函数的使用
输出结果:
试试自己追加自己什么样吧!!
输出结果:
6-3 实现步骤
1.拷贝目标空间中的 \0
2、拷贝数据
模拟实现:
输出结果:
7.strncpy函数的使用(安全系数高)
7-1函数原型:
1、拷贝num个字符从源字符串到目标空间。
2、如果源字符串的长度小于num,则拷完源字符串之后,在目标的后面追加0,直到num个。
n表示num个字节
输出结果:
8.strncmp函数的使用(安全系数高)
8-1函数原型:
返回值:
比较str1和str2的前num个字符,如果相等就继续往后比较,最多比较num个字符。如果提前发现不一样,那就提前结束,ASCII码值大的字符所在的字符串大于另外一个字符串。如果num个字符都相等,就是相等,返回0。
输出结果:
9.strncat函数的使用(安全系数高)
9-1函数原型:
输出结果:
10.strstr函数的使用与模拟
10-1函数原型:
- 函数返回字符串str2在字符串str1中第一次出现的位置。
- 字符串的比较匹配不包含 '\0' 字符,以\0作为结束标志。
10-1strstr函数使用
输出结果:
10-3模拟实现
输出结果
10-4推理过程:
11.strtok函数的使用
函数功能:将用符号分隔开的的字符串,提取出若干个子串。
11-1函数原型:
1、sep参数指向一个字符串,定义用作分隔符的字符集合。
2、第一个参数指定一个字符串,它包含了0个或多个由sep字符串中一个或多个分隔符分割的标记。
3、strtok函数找到str中的下一个标记,并将其用\0结尾,返回一个指向这个标记的指针。
4、函数的第一个参数不为NULL,函数将找到str中第一次标记,strtok函数将保存它在字符串中的位置。
5、函数的第一个参数为NULL,参数将在同一个字符串中被保存的位置开始,查找下一个标记。
6、字符串中不存在更多的标记,就返回NULL指针。
注意:
输出结果:
输出结果:
12.strerror函数的使用
函数功能:显示出对应的错误信息。
12-1函数原型:
输出结果:
输出结果:
13 拓展:perror函数
13-1函数原型:
函数功能:直接将错误信息打印出来。打印完参数部分的字符串后,在打印一个冒号和空格,再打印错误信息。
输出结果:
制作不易,一键三连吧!!!老铁们!!