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

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

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

2020-05-23 13:38:45
字體:
來源:轉載
供稿:網友

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; } 

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高青县| 抚宁县| 庐江县| 新丰县| 洪江市| 银川市| 西昌市| 克什克腾旗| 油尖旺区| 星座| 三穗县| 富民县| 武义县| 黔东| 云浮市| 出国| 驻马店市| 津南区| 监利县| 同心县| 江源县| 鄂尔多斯市| 平昌县| 同仁县| 鲁甸县| 肃宁县| 大港区| 贵德县| 肇州县| 四平市| 大丰市| 景宁| 安龙县| 无为县| 云南省| 陆丰市| 屏东县| 新竹县| 化德县| 龙门县| 兰溪市|