模拟实现字符串查找函数strstr
题目:不使用库函数,模拟实现字符串查找函数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。
代码如下:
主函数代码:
运行结果: