logo

strstr() i C/C++

I C/C++ er std::strstr() en foruddefineret funktion, der bruges til strengmatchning. er den header-fil, der kræves til strengfunktioner. Denne funktion tager to strenge s1 og s2 som argumenter og finder den første forekomst af strengen s2 i snoren s1 . Matchningsprocessen inkluderer ikke de afsluttende null-tegn(' '), men funktionen stopper der.

Syntaks

char * strstr  (const char * s1 , const char * s2 );>

Parametre

    s1 : Dette er hovedstrengen, der skal undersøges. s2 : Dette er understrengen, der skal søges i i streng.

Returværdi

  • Denne funktion returnerer et pointerpunkt til det første tegn i det fundne s2 i s1 ellers en nul pointer if s2 er ikke til stede i s1 .
  • Hvis s2 peger på en tom streng, returneres s1.

Eksempel

Nedenstående program illustrerer brugen af ​​strstr()-funktionen.



C






// C program to illustrate strstr()> #include> #include> int> main()> {> >// Take any two strings> >char> s1[] =>'techcodeview.com'>;> >char> s2[] =>'for'>;> >char>* p;> >// Find first occurrence of s2 in s1> >p =>strstr>(s1, s2);> >// Prints the result> >if> (p) {> >printf>(>'String found '>);> >printf>(>'First occurrence of string '%s' in '%s' is '> >''%s''>,> >s2, s1, p);> >}> >else> >printf>(>'String not found '>);> >return> 0;> }>



>

>

C++




// CPP program to illustrate strstr()> #include> #include> using> namespace> std;> int> main()> {> >// Take any two strings> >char> s1[] =>'techcodeview.com'>;> >char> s2[] =>'for'>;> >char>* p;> >// Find first occurrence of s2 in s1> >p =>strstr>(s1, s2);> >// Prints the result> >if> (p) {> >cout <<>'String found'> << endl;> >cout <<>'First occurrence of string ''> << s2> ><<>'' in ''> << s1 <<>'' is ''> << p <<>'''> ><< endl;> >}> >else> {> >cout <<>'String not found'> << endl;> >}> >return> 0;> }>

>

>

Produktion

String found First occurrence of string 'for' in 'techcodeview.com' is 'forGeeks'>

Tidskompleksitet: O(n + m), hvor n er størrelsen af ​​s1 og m er størrelsen af ​​s2.
Hjælpeplads: O(m), hvor m er størrelsen af ​​s2.

Bemærk: Den officielle implementering af strstr() er uspecificeret, dens implementering antages at bestå af en hvilken som helst af standard string matching algoritmerne. Her har vi antaget, at det er implementeret ved hjælp af Knuth-Morris-Pratt algoritme, som har tid og rum kompleksitet som nævnt ovenfor.

Ansøgning : Erstat en streng med en anden

I dette eksempel ved hjælp af strstr()-funktionen søger vi først efter forekomsten af ​​understreng STL i s1 og derefter erstatte det ord med Strenge .

C++




// CPP program to illustrate strstr()> #include> #include> using> namespace> std;> int> main()> {> >// Take any two strings> >char> s1[] =>'Fun with STL'>;> >char> s2[] =>'STL'>;> >char>* p;> >// Find first occurrence of s2 in s1> >p =>strstr>(s1, s2);> >// Prints the result> >if> (p) {> >strcpy>(p,>'Strings'>);> >cout << s1;> >}> >else> {> >cout <<>'String not found'> << endl;> >}> >return> 0;> }>

>

>

C




// C program to illustrate strstr()> #include> #include> int> main()> {> >// Take any two strings> >char> s1[] =>'Fun with STL'>;> >char> s2[] =>'STL'>;> >char>* p;> >// Find first occurrence of s2 in s1> >p =>strstr>(s1, s2);> >// Prints the result> >if> (p) {> >strcpy>(p,>'Strings'>);> >printf>(>'%s'>, s1);> >}> >else> >printf>(>'String not found '>);> >return> 0;> }>

>

freddie mercury
>

Produktion

Fun with Strings>

Tidskompleksitet: O(n + m), hvor n er størrelsen af ​​s1 og m er størrelsen af ​​s2.
Hjælpeplads: O(m), hvor m er størrelsen af ​​s2.