您的位置:首页 > 编程语言 > C语言/C++

模拟实现字符串查找函数strstr

2018-02-07 18:50 639 查看
题目:不使用库函数,模拟实现字符串查找函数strstr的功能。

例如:在字符串dest:“abcdefg”中查找字符串src:“bcd”是否存在,如存在返回“bcd”在“abcdefg”中的起始位置,即“bcdefg”,

若不存在,则返回null。

分析:

1. 首先定义一个慢指针slow遍历dest字符串,初始指向dest开头,用于记录src在dest中的位置;

2. 再定义一个快指针fast,使之等于slow,定义一个指针p指向src开头;

3. 将fast所指内容和p所指内容对比,如果相等,则两指针均往后移。

若p指针在遍历完src字符串之前两者内容均相同,则说明src在dest中存在,此时返回src在dest中的起始位置slow即可。

若两者内容不相同,则slow指针后移,p指针重新指向src开头,再使fast与slow相等,进行新一轮的遍历。

4. 若slow遍历完dest字符串,都未找到src,则说明src在dest中不存在,则返回null。

代码如下:



主函数代码:



运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息