C语言之字符函数与字符串函数详解

目录

1.字符分类函数

1-1 函数原型:

1-2 islower函数使用

1-3 isupper函数使用

2.字符转换函数

2-1 tolower函数原型:

2-2 toupper函数原型:

3.strlen函数的使用与模拟实现

3-1 函数原型:

3-2 模拟实现方法

3-2-1计数器的方式

3-2-1 指针-指针

3-2-3 递归的方式

4.strcpy函数的使用与模拟实现(安全系数不高)

4-1 函数原型:

4-2 strcpy函数使用

5.strcmp函数的使用与模拟(安全系数不高)

5-1函数原型:

5-2模拟实现

5-2-1方法1、

5-2-2方法2、

6.strcat函数的使用与模拟(安全系数不高)

6-1函数原型:

6-2 strcat函数的使用

6-3 实现步骤

7.strncpy函数的使用(安全系数高)

7-1函数原型:

8.strncmp函数的使用(安全系数高)

8-1函数原型:

9.strncat函数的使用(安全系数高)

9-1函数原型:

10.strstr函数的使用与模拟

10-1函数原型:

10-1strstr函数使用

10-3模拟实现

10-4推理过程:

11.strtok函数的使用

11-1函数原型:

12.strerror函数的使用

12-1函数原型:

13 拓展:perror函数

13-1函数原型:


在编程时,我们经常要处理字符和字符串,为了方便操作字符和字符串,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函数原型:

  1. 函数返回字符串str2在字符串str1中第一次出现的位置。
  2. 字符串的比较匹配不包含 '\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函数原型:

函数功能:直接将错误信息打印出来。打印完参数部分的字符串后,在打印一个冒号和空格,再打印错误信息。

输出结果:

制作不易,一键三连吧!!!老铁们!!

  • 28
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值