模拟实现strtok && strstr && strerror

10 篇文章 0 订阅
3 篇文章 0 订阅

首先我们来讲一下strstr函数,该函数的主要作用是在一个字符串中查找是否另一个字符串为它的子字符串

当不为子字符串时,函数返回NULL,当为子字符串时,不返回NULL

我们在实现函数模拟代码时的主要思路是,创建三个变量,一个变量指向母字符串,一个变量指向子字符串,这两个变量用来比较两个字符串是否相等,还有一个变量作为锚,放在指向母字符串的变量的初始位置,以便找到正确的起始点的时候进行返回,当两个变量比较时发现不想等,即指向子字符串的变量还未到 \0 就出现比较的不同,那么则将锚变量向后移动以为,将母字符串变量移到锚变量位置,子字符串回到初始位置,重新开始比较,若比较结束后完全相同,那么返回锚变量指向的地址。

下面是代码实现:

 

接下来我们讲一下 strtok 函数

下面先放出两种strtok函数的应用实现形式

b09d5903b4ff47c8bd89af3d745568a7.png

                                                                                          图2

 2bf13f765cb44665b4a26822893c3415.png

                                                            图3

下面讲一些关于strtok函数的实质,当strtok函数在被查找的参数中找到参数对应的符号时,会将其更改为 \0,并且记录下 \0 的位置,返回被查找函数的初始字符地址,若下次使用strtok的时候在被查找参数输入NULL,那么便会从上次记录的位置开始向后找参数中对应的符号,以此类推,直到被查找的参数中没有字符,即查完后,strtok函数便会返回NULL。

最后我们讲一下strerror函数,若要查找某种错误的原因,可以使用strerror,当出现错误时,错误的编码会保存在errno中,所以sterror的使用形式如下图所示

2c4a8f84042e4c9089a471306bbeff83.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值