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

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

總結(jié)C++中strstr函數(shù)的實(shí)現(xiàn)方法

2020-02-24 14:30:26
字體:
供稿:網(wǎng)友

C語言strstr函數(shù)搜索字符串中第一個(gè)出現(xiàn)的字符串,如果找到搜索字符串,則函數(shù)返回第一個(gè)匹配字符串的地址,如果找不到搜索字符串,則返回空值,下文是武林技術(shù)頻道小編和大家分享的總結(jié)C++中strstr函數(shù)的實(shí)現(xiàn)方法。

C++中strstr函數(shù)的實(shí)現(xiàn)方法總結(jié)

函數(shù)說明:

包含文件:string.h

函數(shù)名: strstr

函數(shù)原型: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中找到連續(xù)的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中首次出現(xiàn)字符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; } 

看了武林技術(shù)頻道小編分享的總結(jié)C++中strstr函數(shù)的實(shí)現(xiàn)方法,新手們對(duì)使用是不是有了更深的了解,希望對(duì)您有所幫助,請(qǐng)繼續(xù)關(guān)注我們。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 琼结县| 疏附县| 手游| 宜黄县| 永兴县| 海原县| 牟定县| 泸定县| 陈巴尔虎旗| 沧源| 确山县| 清远市| 青神县| 松阳县| 慈溪市| 昭平县| 泗阳县| 宝丰县| 江安县| 英德市| 大邑县| 南部县| 蒲城县| 伊春市| 平远县| 丰台区| 凌海市| 榆中县| 江城| 贺兰县| 堆龙德庆县| 汤原县| 怀仁县| 长丰县| 兴海县| 舒城县| 高邮市| 信阳市| 九寨沟县| 滨州市| 金川县|