模拟实现字符串查找函数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。
代码如下:
主函数代码:
运行结果:
例如:在字符串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。
代码如下:
主函数代码:
运行结果:
相关文章推荐
- C语言:模拟实现字符串中查找一个字符串my_strstr()函数
- 一个自己实现的strstr 字符串查找函数,大家看看有什么错误和改进的地方
- 和字符串有关的函数的模拟实现 strlen strcpy strcat strstr strcmp
- leetcode | Implement strStr() | 实现字符串查找函数
- 模拟实现字符串操作函数(strcpy,strstr,strcat,strcmp,strlen)与内存操作函数(memcpy,memmove)
- 模拟实现各类字符串查找操作函数
- 字符串处理函数的模拟实现(strlen、strstr、strcat、strcmp、strcpy、memmove、memcpy)
- 系统函数C字符串的实现(2):strstr
- php strstr查找字符串中是否包含某些字符的查找函数
- LeetCode OJ:Implement strStr()(实现子字符串查找)
- 【c语言】模拟实现strchr函数,功能:在一个字符串中查找一个字符第一次出现的位置,如果没有出现返回NULL
- 模拟实现c库函数strcpy,strcat,strstr,strcmp,memcpy,memmove
- 分享给大家两个不区分大小写的字符串查找函数 strstr
- C语言模拟实现字符串操作函数
- 自己实现的一个字符串分割截取函数,以及查找指定字符
- 实现字符串查找库函数
- [C语言】模拟实现库函数strstr,查找子字符串
- c语言之模拟实现求子串(strstr)函数
- 字符串逻辑比较函数---StrCmpLogicalW的模拟实现