logo

strstr() i C/C++

I C/C++ er std::strstr() en forhåndsdefinert funksjon som brukes for strengmatching. er overskriftsfilen som kreves for strengfunksjoner. Denne funksjonen tar to strenger s1 og s2 som argumenter og finner den første forekomsten av strengen s2 i strengen s1 . Prosessen med å matche inkluderer ikke de avsluttende null-tegnene (' '), men funksjonen stopper der.

Syntaks

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

Parametere

    s1 : Dette er hovedstrengen som skal undersøkes. s2 : Dette er understrengen som skal søkes i streng.

Returverdi

  • Denne funksjonen returnerer et pekerpunkt til det første tegnet i det funnet s2 i s1 ellers en null-peker hvis s2 er ikke til stede i s1 .
  • Hvis s2 peker på en tom streng, returneres s1.

Eksempel

Programmet nedenfor illustrerer bruken av strstr()-funksjonen.



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

>

>

Produksjon

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

Tidskompleksitet: O(n + m), hvor n er størrelsen på s1 og m er størrelsen på s2.
Hjelpeplass: O(m), der m er størrelsen på s2.

Merk: Den offisielle implementeringen av strstr() er uspesifisert, implementeringen antas å bestå av en hvilken som helst av standard strengmatching-algoritmer. Her har vi antatt at den er implementert ved hjelp av Knuth-Morris-Pratt-algoritmen, som har tid og romkompleksitet som nevnt ovenfor.

applikasjon : Bytt ut en streng med en annen

I dette eksemplet søker vi først etter forekomsten av understreng ved hjelp av strstr()-funksjonen STL i s1 og etter det erstatte det ordet med Strenger .

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
>

Produksjon

Fun with Strings>

Tidskompleksitet: O(n + m), der n er størrelsen på s1 og m er størrelsen på s2.
Hjelpeplass: O(m), der m er størrelsen på s2.