logo

strstr() în C/C++

În C/C++, std::strstr() este o funcție predefinită folosită pentru potrivirea șirurilor. este fișierul antet necesar pentru funcțiile șir. Această funcție are două șiruri s1 și s2 ca argumente și găsește prima apariție a șirului s2 în sfoară s1 . Procesul de potrivire nu include caracterele nule de terminare (‘ ’), dar funcția se oprește aici.

Sintaxă

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

Parametrii

    s1 : Acesta este șirul principal care trebuie examinat. s2 : Acesta este sub-șirul care trebuie căutat în șir.

Valoare returnată

  • Această funcție returnează un pointer la primul caracter al caracterului găsit s2 în s1 în caz contrar, un pointer nul dacă s2 nu este prezent în s1 .
  • Dacă s2 indică un șir gol, s1 este returnat.

Exemplu

Programul de mai jos ilustrează utilizarea funcției strstr().



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

>

>

Ieșire

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

Complexitatea timpului: O(n + m), unde n este dimensiunea lui s1 și m este dimensiunea lui s2.
Spațiu auxiliar: O(m), unde m este dimensiunea lui s2.

Notă: Implementarea oficială a strstr() este nespecificată, se presupune că implementarea sa constă din oricare dintre algoritmii standard de potrivire a șirurilor. Aici, am presupus că este implementat folosind algoritmul Knuth-Morris-Pratt, care are complexitate în timp și spațiu așa cum sa menționat mai sus.

Aplicație : Înlocuiți un șir cu altul

În acest exemplu, cu ajutorul funcției strstr(), căutăm mai întâi apariția subșirului STL în s1 și după aceea înlocuiți acel cuvânt cu Siruri de caractere .

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

>

linie nouă în python
>

Ieșire

Fun with Strings>

Complexitatea timpului: O(n + m), unde n este dimensiunea lui s1 și m este dimensiunea lui s2.
Spațiu auxiliar: O(m), unde m este dimensiunea lui s2.