编写实现strstr()函数功能的代码
来源:互联网 发布:淘宝会员名怎么改不了 编辑:程序博客网 时间:2024/05/20 19:49
参考:http://topic.csdn.net/t/20051001/17/4305285.html
const char *strstr(const char *src, const char *needle);
输入src, 寻找里面是否有子串needle
const char * _strstr(const char *src, const char *needle)
{
const char *p1, *p2;
p1 = src;
p2 = needle;
while (*src != '\0' && *needle != '\0')
{
if (*src++ != *needle++) {
needle = p2;
src = ++p1; //从下一个字符开始搜索needle
}
}
if (*needle == '\0')
return p1;
return NULL;
}
改进上面的:
const char * _strstr(const char *src, const char *needle)
{
const char *p1, *p2;
p1 = src;
p2 = needle;
while (*src != '\0' && *needle != '\0')
{
if (*src++ != *needle++) {
needle = p2;
p1 =src; //从当前字符开始搜索needle
}
}
if (*needle == '\0')
return p1;
return NULL;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
调用:
_strstr("abcdefcdfetsk", "cdfe");
////////////////////////////////////////////////////////////////////////////////////////////////////////
int i=0,j=0;
if (strlen(src) <strlen(needle)) return NULL;
while(*(src+i) && *(needle+j))
{
if(*(src+i)==*(needle+j))
{
i++;j++;
} else {
i=i-j+1;j=0;
}
}
return (j> 0)? (src+i-j) : NULL;
////////////////////////////////////////////////////////////////////////////////////////////////////////
- 编写实现strstr()函数功能的代码
- 【LeetCode】005 Implement strStr() 函数strStr()的功能实现
- 模拟实现strstr函数功能
- 自己编写代码实现atoi和itoa函数的功能
- 自己编写代码实现常用字符串函数的功能
- 自己编写代码实现atoi和itoa函数的功能
- strstr函数的实现
- strstr 函数的 实现
- strstr函数的实现
- strstr 函数的实现
- strstr函数的实现
- 实现c语言strstr函数功能
- strstr函数的自己实现
- strstr函数的自己实现
- c++ strstr函数的实现
- strstr函数的简单实现
- strstr函数的自己实现
- strstr()函数的实现
- 5个改变你一生的word技巧
- 详解Android动画之Tween Animation
- Android-x86入门之--让你的Android-x86竖屏起来
- ArcGIS客户端API中加载大量数据的几种解决办法
- java中抽象类和接口异同
- 编写实现strstr()函数功能的代码
- sql语句学习
- 新手使用PL/SQL Developer面临的问题
- 设置Windows快捷键
- 装箱(boxing)和拆箱(unboxing)
- 微博滚动效果
- 8.4 xml编码与解码包
- 无法向会话状态服务器发出会话状态请求请。确保 ASP.NET State Service (ASP.NET 状态服务)已启动
- Oracle 取得当天0时0分0秒和23时59分59秒