首先我们来讲一下strstr函数,该函数的主要作用是在一个字符串中查找是否另一个字符串为它的子字符串
当不为子字符串时,函数返回NULL,当为子字符串时,不返回NULL
我们在实现函数模拟代码时的主要思路是,创建三个变量,一个变量指向母字符串,一个变量指向子字符串,这两个变量用来比较两个字符串是否相等,还有一个变量作为锚,放在指向母字符串的变量的初始位置,以便找到正确的起始点的时候进行返回,当两个变量比较时发现不想等,即指向子字符串的变量还未到 \0 就出现比较的不同,那么则将锚变量向后移动以为,将母字符串变量移到锚变量位置,子字符串回到初始位置,重新开始比较,若比较结束后完全相同,那么返回锚变量指向的地址。
下面是代码实现:
接下来我们讲一下 strtok 函数
下面先放出两种strtok函数的应用实现形式
图2
图3
下面讲一些关于strtok函数的实质,当strtok函数在被查找的参数中找到参数对应的符号时,会将其更改为 \0,并且记录下 \0 的位置,返回被查找函数的初始字符地址,若下次使用strtok的时候在被查找参数输入NULL,那么便会从上次记录的位置开始向后找参数中对应的符号,以此类推,直到被查找的参数中没有字符,即查完后,strtok函数便会返回NULL。
最后我们讲一下strerror函数,若要查找某种错误的原因,可以使用strerror,当出现错误时,错误的编码会保存在errno中,所以sterror的使用形式如下图所示