Chinaunix首页 | 论坛 | 博客

  • 博客访问: 473971
  • 博文数量: 86
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 878
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 14:11
文章分类

全部博文(86)

文章存档

2010年(12)

2009年(60)

2008年(14)

我的朋友

分类: C/C++

2008-11-24 21:10:44

strstr(s1,s2)是一个经常用的函数,他的作用就是在字符串s1中寻找字符串s2如果找到了就返回指针,否则返回NULL。
下面是这个函数的一个简单实现:
static const char* _strstr(const char* s1, const char* s2)
{
     assert(s2 && s1);
     const char* p=s1, *r=s2;
     while(*p!='\0')
     {
          while(*p++==*r++);
          if(*r=='\0')
               return p;
          else
          {
               r=s2;
               p=++s1;
          }
     }
     return NULL;
}
阅读(1295) | 评论(1) | 转发(0) |
0

上一篇:vfprintf函数

下一篇:C++之模板(Template)

给主人留下些什么吧!~~

shitao12012009-02-25 21:16:41

这位兄弟代码有些问题,不能实现strstr的功能,需要添加如下代码 static const char* _strstr(const char* s1, const char* s2) { int i = 0; assert(s2 && s1); const char* p=s1, *r=s2; while(*p!='\0') { while(*p++==*r++) { i++;//新加 }; if(*r=='\0') return (p-i);//新加 else { r=s2; p=++s1; } } return NULL; }