C语言中的strstr函数

C语言中的strstr函数

说到strstr函数,可能很多人会比较陌生,对比其他的字符串函数比如strcpy,strcmp等等,它的确比较少用,但其实他也是一个非常有用和常见的函数,今天,就让我们一起来看一看吧!
首先我们来谈谈它的作用和组成:
char * strstr(const char * long,const char * short),它的参数是两个字符串long和short(不修改他们的内容,用const修饰),表示的是short在long中第一次出现的位置并返回long剩余的内容。
我们来看看最基础的strstr函数实现吧。```
// char str1[] = “aabcadacdd”;
//我们要找另一个字符串str2[]=“cd”;

其实基础原理很简单,就是将str2的首元素和str1依次比较,如果相同再比较str2第二个元素与str1当前元素的下一个元素是否相同,如果相同以此类推,直到str2到“\0”为止,最后返回str1的剩余内容;但是当str2后续有元素和str1对应的元素不相同时,说明没有匹配成功,这是需要从str2首元素重新与上一次str1中与str2的第二个元素比较的元素重新比较,重复上述过程,直至成功;如果未匹配到,最后返回null。(匹配过程比较繁琐,其实还有更好的匹配算法KMP,下次再说)

实现过程需要注意的是:

  1. 在整个过程str1和str2内容没有发生改变,所以我们需要定义两个指针对应他们,代替他们移动指向位
  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值