国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++中strstr函數的實現方法總結

2020-01-26 13:51:34
字體:
來源:轉載
供稿:網友

C++中strstr函數的實現方法總結

函數說明:

包含文件:string.h

函數名: strstr

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

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

返回值:返回該位置的指針,如找不到,返回空指針。

方法一:

#include <iostream> #include <assert.h> 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:"<<res<<endl;   }   else   {     cout<<"no exist!"<<endl;   }   return 0; } 

方法二:

#include <iostream> #include <assert.h> 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:"<<res<<endl;   }   else   {     cout<<"no exist!"<<endl;   }   return 0; } 

方法三:

#include <iostream> #include <assert.h> 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:"<<res<<endl;   }   else   {     cout<<"no exist!"<<endl;   }   return 0; } 

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 榆树市| 千阳县| 正安县| 同德县| 彭阳县| 封丘县| 禄丰县| 卢龙县| 东兴市| 永登县| 双流县| 万年县| 郸城县| 寿宁县| 柏乡县| 林周县| 旌德县| 石景山区| 巍山| 海南省| 莫力| 沛县| 巴林左旗| 商洛市| 巫溪县| 日喀则市| 达拉特旗| 涟水县| 邹城市| 甘孜县| 育儿| 天柱县| 昭通市| 盐山县| 英吉沙县| 长泰县| 沅陵县| 大冶市| 吉首市| 时尚| 牡丹江市|