logo

strstr() C/C++

C/C++ kalboje std::strstr() yra iš anksto nustatyta funkcija, naudojama eilutėms suderinti. yra antraštės failas, reikalingas eilučių funkcijoms. Šiai funkcijai reikia dviejų eilučių s1 ir s2 kaip argumentus ir suranda pirmąjį eilutės pasireiškimą s2 stygoje s1 . Suderinimo procesas neapima baigiamųjų nulinių simbolių (' '), tačiau funkcija sustoja.

Sintaksė

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

Parametrai

    s1 : tai pagrindinė eilutė, kurią reikia ištirti. s2 : tai antrinė eilutė, kurios reikia ieškoti eilutėje.

Grąžinimo vertė

  • Ši funkcija grąžina žymeklio tašką į pirmąjį rasto simbolį s2 in s1 kitu atveju nulinis rodyklė, jei s2 nėra s1 .
  • Jei s2 nurodo tuščią eilutę, grąžinamas s1.

Pavyzdys

Žemiau pateikta programa iliustruoja strstr() funkcijos naudojimą.



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

>

>

Išvestis

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

Laiko sudėtingumas: O(n + m), kur n yra s1 dydis, o m yra s2 dydis.
Pagalbinė erdvė: O(m), kur m yra s2 dydis.

Pastaba: Oficialus strstr() įgyvendinimas nenurodytas, manoma, kad jo įgyvendinimas susideda iš bet kurio iš standartinių eilučių atitikimo algoritmų. Čia darėme prielaidą, kad jis įgyvendintas naudojant Knuth-Morris-Pratt algoritmą, kuris turi laiko ir erdvės sudėtingumą, kaip nurodyta aukščiau.

Taikymas : pakeiskite eilutę kita

Šiame pavyzdyje naudodami funkciją strstr() pirmiausia ieškome poeilutės atsiradimo STL in s1 o po to pakeiskite šį žodį į Stygos .

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

>

kas yra const java
>

Išvestis

Fun with Strings>

Laiko sudėtingumas: O(n + m), kur n yra s1 dydis, o m yra s2 dydis.
Pagalbinė erdvė: O(m), kur m yra s2 dydis.