最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關于C語言函數(shù)strstr()的分析以及實現(xiàn)

 更新時間:2013年07月11日 11:42:24   作者:  
以下是對C語言中strstr()函數(shù)的使用進行了詳細的分析介紹,需要的朋友可以參考下
原型:char *strstr(const char *str1, const char *str2);
#include<string.h>
找出str2字符串在str1字符串中第一次出現(xiàn)的位置(不包括str2的串結(jié)束符)。返回該位置的指針,如找不到,返回空指針。
Returns a pointer to the first occurrence of strSearch in str, or NULL if strSearch does not appear in str. IfstrSearch points to a string of zero length, the function returns str.
復制代碼 代碼如下:

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#pragma warning (disable:4996)
char *mystrstr(char *s1,char *s2);
int main(void)
{
 char *s="Golden Global View";
 char *l="ob";   //char *l=""
 char *p;
 system("cls");
 p=mystrstr(s,l);
 if (p!=NULL)
 {
  printf("%s\n",p);
 }
 else
 {
  printf("Not Found!\n");
 }
    getch();
 return 0;
}
/*FROM 百科*/
char *mystrstr(char *s1,char *s2)
{
 int n;
 if (*s2)                      //兩種情況考慮
 {
        while(*s1)              
  {
            for (n=0;*(s1+n)==*(s2+n);n++)
            {
    if (!*(s2+n+1))            //查找的下一個字符是否為'\0'
    {
     return (char*)s1;
    }
            }
   s1++;
  }
  return NULL;
 }
 else
 {
  return (char*)s1;
 }
}

另一個實現(xiàn):
復制代碼 代碼如下:

char *  strstr (buf, sub)
     register char *buf;
     register char *sub;
{
    register char *bp;
    register char *sp;
    if (!*sub)
      return buf;
    while (*buf)
    {
        bp = buf;
        sp = sub;
        do {
            if (!*sp)
              return buf;
        } while (*bp++ == *sp++);
        buf += 1;
    }
    return 0;
}

又一個實現(xiàn):
復制代碼 代碼如下:

#include <iostream>
#include <string>
using namespace std;
//c語言實現(xiàn)strstr
const char* isSub(const char* str, const char *subs){
 //特殊情況
 if(!*subs)
  return str;
 const char* tmp=str;
 while (*tmp!='\0')
 {
  //用于每次將父串向后移動一個字符
  const char* tmp1=tmp;
  //記錄子串地址
  const char* sub1=subs;
  while (*sub1!='\0'&&*tmp1!='\0')
  {
   //若不相等則跳出,將父串后移一個字符
   if (*sub1!=*tmp1)
    break;
   //若相等且子串下一個字符是末尾則是這個父串的子串
   if (*sub1==*tmp1&&*(sub1+1)=='\0')
    return tmp;
   //若相等則繼續(xù)比較下一個字符
   if (*sub1==*tmp1)
   {
    sub1++;
    tmp1++;
   }
  }
  tmp++;
 }
 return NULL;
}
int main(){
 char* str1="ababcdddb";
 char* str="";
 const char *res=isSub(str1,str);
 if (res!=NULL)
 {
  cout << res << endl;
 }
 else
  cout << "null" << endl;
 //cout << isSub(str1,str) << endl;
 return 0;
}

相關文章

  • C語言詳解無頭單向非循環(huán)鏈表各種操作方法

    C語言詳解無頭單向非循環(huán)鏈表各種操作方法

    無頭單向非循環(huán)鏈表:結(jié)構簡單,一般不會單獨用來存數(shù)據(jù)。實際中更多是作為其他數(shù)據(jù)結(jié)構的子結(jié)構,如哈希桶、圖的鄰接表等等。另外這種結(jié)構在筆試面試中出現(xiàn)很多
    2022-04-04
  • C++使用waveIn實現(xiàn)聲音采集

    C++使用waveIn實現(xiàn)聲音采集

    在Windows上實現(xiàn)錄音比較簡單的方法是使用winmm,其中的waveIn模塊就可以打開錄音設備,這篇文章主要為大家介紹了C++如何使用waveIn實現(xiàn)聲音采集,需要的可以了解下
    2023-10-10
  • C++數(shù)據(jù)結(jié)構繼承的概念與菱形繼承及虛擬繼承和組合

    C++數(shù)據(jù)結(jié)構繼承的概念與菱形繼承及虛擬繼承和組合

    今天我要給大家介紹C++中更深入的內(nèi)容了。C++這門語言為了使代碼不冗余,做了些什么操作呢?C++的繼承就很好地實現(xiàn)了類層次的代碼復用,今天我就要來和大家好好聊一聊它了
    2022-02-02
  • Qt?自定義屬性Q_PROPERTY不顯示float類型的解決

    Qt?自定義屬性Q_PROPERTY不顯示float類型的解決

    這篇文章主要介紹了Qt?自定義屬性Q_PROPERTY不顯示float類型的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 用C語言進行最基本的socket編程

    用C語言進行最基本的socket編程

    這篇文章主要介紹了C語言下socket編程的基本知識講解,包括最基本的客戶端發(fā)送及服務器端接受數(shù)據(jù)的實現(xiàn),需要的朋友可以參考下
    2015-11-11
  • Visual Studio新建類從默認internal改為public

    Visual Studio新建類從默認internal改為public

    本文將介紹如何將Visual Studio中的internal修飾符更改為public,以實現(xiàn)更廣泛的訪問和重用,需要的朋友們下面隨著小編來一起學習學習吧
    2023-09-09
  • C++內(nèi)存泄漏及檢測工具詳解

    C++內(nèi)存泄漏及檢測工具詳解

    最簡單的方法當然是借助于專業(yè)的檢測工具,比較有名如BoundsCheck,功能非常強大,相信做C++開發(fā)的人都離不開它。此外就是不使用任何工具,而是自己來實現(xiàn)對內(nèi)存泄露的監(jiān)控
    2013-10-10
  • C語言結(jié)構體(struct)的詳細講解

    C語言結(jié)構體(struct)的詳細講解

    C語言中,結(jié)構體類型屬于一種構造類型(其他的構造類型還有:數(shù)組類型,聯(lián)合類型),下面這篇文章主要給大家介紹了關于C語言結(jié)構體(struct)的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • 簡單總結(jié)C語言中各種類型的指針的概念

    簡單總結(jié)C語言中各種類型的指針的概念

    這篇文章主要簡單總結(jié)了C語言中各種類型的指針的概念,指針可以說是C語言本身所具有的最大特性,平時根據(jù)不同使用場合習慣地將其簡單分類,需要的朋友可以參考下
    2016-03-03
  • C實現(xiàn)與 uint64_t 相同功能的類

    C實現(xiàn)與 uint64_t 相同功能的類

    本文給大家分享的是筆者實現(xiàn)的仿uint64_t的類,可以用在不支持uint64_t的平臺上,雖然現(xiàn)在功能還不完善,但是還是分享給大家,也算是給大家一個思路吧。
    2015-12-12

最新評論

盐城市| 吴堡县| 田东县| 镇巴县| 河曲县| 奉新县| 罗源县| 赤壁市| 荃湾区| 侯马市| 商都县| 肇东市| 封丘县| 塔城市| 平湖市| 甘肃省| 枣阳市| 鲁甸县| 靖江市| 黎川县| 铁力市| 石嘴山市| 大余县| 庐江县| 丹棱县| 玛纳斯县| 托克托县| 丹巴县| 旅游| 菏泽市| 驻马店市| 镇平县| 海门市| 洮南市| 玉山县| 容城县| 泸州市| 比如县| 安平县| 通许县| 洛宁县|