<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. C語言

    C語言中strstr()函數的使用分析

    時間:2025-04-20 02:27:55 C語言 我要投稿
    • 相關推薦

    C語言中strstr()函數的使用分析

      strstr() 函數搜索一個字符串在另一個字符串中的第一次出現,用于判斷字符串str2是否是str1的子串。以下是百分網小編搜索整理的關于C語言中strstr()函數的使用分析,供參考借鑒,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!

      原型:char *strstr(const char *str1, const char *str2);

      #include<string.h>

      找出str2字符串在str1字符串中第一次出現的位置(不包括str2的串結束符)。返回該位置的指針,如找不到,返回空指針。

      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("%sn",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))            //查找的下一個字符是否為''

      {

      return (char*)s1;

      }

      }

      s1++;

      }

      return NULL;

      }

      else

      {

      return (char*)s1;

      }

      }

      另一個實現:

      代碼如下:

      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;

      }

      又一個實現:

      代碼如下:

      #include <iostream>

      #include <string>

      using namespace std;

      //c語言實現strstr

      const char* isSub(const char* str, const char *subs){

      //特殊情況

      if(!*subs)

      return str;

      const char* tmp=str;

      while (*tmp!='')

      {

      //用于每次將父串向后移動一個字符

      const char* tmp1=tmp;

      //記錄子串地址

      const char* sub1=subs;

      while (*sub1!=''&&*tmp1!='')

      {

      //若不相等則跳出,將父串后移一個字符

      if (*sub1!=*tmp1)

      break;

      //若相等且子串下一個字符是末尾則是這個父串的子串

      if (*sub1==*tmp1&&*(sub1+1)=='')

      return tmp;

      //若相等則繼續比較下一個字符

      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語言中strstr()函數的使用分析】相關文章:

    C語言入門知識:strstr函數03-28

    C語言中兩個串函數的使用08-13

    c語言中有關隨機函數的使用詳解07-23

    C語言中函數的區分04-10

    C語言中關于時間的函數02-19

    C語言中strpbr()函數的用法07-25

    c語言中time函數的用法05-15

    C語言中gets()函數知識08-10

    C 語言中宏的使用08-02

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人