常见函数介绍

一、strtok函数

介绍:该函数能将字符串里面的分隔符从字符串里去掉

形式:

记存放字符串的数组为arr

字符串里面分隔符的集合为sep

则函数写为strtok(arr,sep)

原理:strtok函数从字符串起始位置开始查找分割符里面的元素,并把该位置的字符串修改成  '\0'

所以一般我们使用该函数时不会直接把字符串传进去 ,而是会拷贝一份放进去。

 如果再次调用该函数,则从被修改成 '\0' 的位置开始往后查找分隔符集合里的元素,找到后把该元素替换成  '\0'

该函数的地址是首字符的地址。

上面就是第一次调用返回6的地址,打印697,@被修改成'\0' 

第二次返回qq首元素的地址,  ‘.’  修改成‘\0’  ,打印qq

最后返回com的地址,打印com 

再往后面找就没有内容了,就返回空指针了,循环结束。

二、strstr函数

strstr(arr1,arr2) 

表示在arr1里面找arr2里面的字符串,如果找到,返回首元素的地址。

如果arr1里面有多个arr2里面的字符串,则返回第一个出现的字符串的地址。

strstr函数的模拟

比如要找str1里面有没有str2里面的所有元素。我们将两个数组的首元素进行比较,如果一样,那地址各自后移一位,比较后面两个元素。

就拿上图的例子来讲,一开始两元素不相等,我们就把str1的地址后移一位

右面两个元素都相等,则str1,str2里面元素分别后移,但是后面两个元素就不相等了(一个是b,一个是c)

这个时候str2要回到首元素的地址,str1要回到本次循环开始的位置再往后偏移一个,所以一开始我们可以给str1定一个标记点cur。这样子我们方便回到起始位置。

核心思路是:判断两个元素是否相等,若相等比较后面两个元素,直到str2里面的元素全都遍历了一遍。如果两个元素不相等,则全部退回到起始地址,标记点的地址++。如果标记点遍历到了str1里面的最后一个元素还没有匹配,则找寻失败。

三、memcpy函数

输入目标地址,源地址,要拷贝的字节数

就能把源地址里的数据拷贝到目标地址里面。

返回值是输入函数里的目标地址

 

 比如上图就是把arr里面的cq放到sep里面的b的位置,返回b的地址

注意:若源内存块和目标内存块有重叠,要用memmove函数

 

四、memmove函数 

 

memmove函数的模拟实现

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值