logo

strstr() C/C++:ssa

C/C++:ssa std::strstr() on ennalta määritetty funktio, jota käytetään merkkijonojen sovittamiseen. on merkkijonofunktioille vaadittava otsikkotiedosto. Tämä toiminto vaatii kaksi merkkijonoa s1 ja s2 argumenteiksi ja löytää merkkijonon ensimmäisen esiintymän s2 merkkijonossa s1 . Sovitusprosessi ei sisällä päättäviä nolla-merkkejä (' '), mutta funktio pysähtyy siihen.

Syntaksi

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

Parametrit

    s1 : Tämä on tärkein tutkittava merkkijono. s2 : Tämä on merkkijonosta haettava alimerkkijono.

Palautusarvo

  • Tämä funktio palauttaa osoitinpisteen löydetyn ensimmäiseen merkkiin s2 sisään s1 muuten tyhjä osoitin if s2 ei ole läsnä s1 .
  • Jos s2 osoittaa tyhjään merkkijonoon, palautetaan s1.

Esimerkki

Alla oleva ohjelma havainnollistaa strstr()-funktion käyttöä.



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

>

>

Lähtö

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

Aika monimutkaisuus: O(n + m), missä n on s1:n koko ja m on s2:n koko.
Aputila: O(m), missä m on s2:n koko.

Huomautus: Strstr():n virallinen toteutus on määrittelemätön, sen toteutuksen oletetaan koostuvan mistä tahansa vakiomerkkijonovastaavuusalgoritmeista. Tässä olemme olettaneet, että se on toteutettu Knuth-Morris-Pratt-algoritmilla, jolla on aika- ja tilamonimutkaisuus, kuten edellä on todettu.

Sovellus : Korvaa merkkijono toisella

Tässä esimerkissä etsitään ensin strstr()-funktion avulla alimerkkijonon esiintyminen STL sisään s1 ja korvaa sen jälkeen sana sanalla jouset .

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

>

java kommentteja
>

Lähtö

Fun with Strings>

Aika monimutkaisuus: O(n + m), missä n on s1:n koko ja m on s2:n koko.
Aputila: O(m), missä m on s2:n koko.