国产探花免费观看_亚洲丰满少妇自慰呻吟_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; } 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安远县| 中西区| 胶南市| 犍为县| 虹口区| 西盟| 平阴县| 交城县| 阿拉善右旗| 长子县| 承德县| 镇平县| 开化县| 乌拉特前旗| 平度市| 三穗县| 唐海县| 普格县| 赣州市| 塔河县| 安化县| 钦州市| 饶阳县| 新民市| 乌拉特前旗| 胶州市| 金阳县| 阿拉善盟| 贡嘎县| 郓城县| 天峻县| 阳新县| 信宜市| 延津县| 洪泽县| 新乡市| 多伦县| 吉水县| 明光市| 邢台县| 宝兴县|