C++中strstr函数的实现方法总结

C++中strstr函数的实现方法总结

成都创新互联公司长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为湟源企业提供专业的成都网站建设、网站设计湟源网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。

函数说明:

包含文件:string.h

函数名: strstr

函数原型:extern char *strstr(char *str1, char *str2);

功能:从字符串str1中查找是否有字符串str2, 如果有,从str1中的str2位置起,返回str1的指针,如果没有,返回null。

返回值:返回该位置的指针,如找不到,返回空指针。

方法一:

#include  
#include  
using namespace std; 
 
char* My_strstr(char *src,char *substr) 
{ 
  assert(src != NULL && substr != NULL); 
 
  unsigned int size = strlen(src); 
  for(int i = 0; i < size; ++i,++src) 
  { 
    char *p = src; 
    for(char *q = substr;;p++,q++) 
    { 
      if(*q == '\0')  //在src中找到连续的substr子串停止并返回 
      { 
        return src; 
      } 
      if(*q != *p) 
      { 
        break; 
      } 
    } 
  } 
 
  return NULL; 
} 
 
int main() 
{ 
  char *res = My_strstr("abcdefg","cde"); 
  if(res != NULL) 
  { 
    cout<<"exist:"<

方法二:

#include  
#include  
using namespace std; 
char* My_strstr(const char* s1,const char* s2) 
{ 
  int n; 
  if(*s2) 
  { 
    while(*s1) 
    { 
      for(n=0;*(s1+n)==*(s2+n);n++) 
      { 
        if(!*(s2+n+1)) 
          return (char*)s1; 
      } 
      s1++; 
    } 
    return NULL; 
  } 
  else 
    return (char*)s1; 
} 
 
int main() 
{ 
  char *res = My_strstr("abcdefg","cde"); 
  if(res != NULL) 
  { 
    cout<<"exist:"<

方法三:

#include  
#include  
using namespace std; 
char* My_strstr(const char* s1,const char* s2) 
{ 
  const char *p=s1; 
  const size_t len=strlen(s2); 
  for(;(p=strchr(p,*s2))!=0;p++)// strchr查找字符串s中首次出现字符c的位置 
  { 
    if(strncmp(p,s2,len)==0) 
    { 
      return(char*)p; 
    } 
  } 
  return(0); 
} 
int main() 
{ 
  char *res = My_strstr("abcdefg","cde"); 
  if(res != NULL) 
  { 
    cout<<"exist:"<

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


当前名称:C++中strstr函数的实现方法总结
文章源于:http://ybzwz.com/article/igjhpp.html