logo

strstr() en C/C++

En C/C++, std::strstr() és una funció predefinida que s'utilitza per a la concordança de cadenes. és el fitxer de capçalera necessari per a les funcions de cadena. Aquesta funció pren dues cadenes s1 i s2 com a arguments i troba la primera ocurrència de la cadena s2 a la corda s1 . El procés de concordança no inclou els caràcters nuls finals (' '), però la funció s'atura aquí.

Sintaxi

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

Paràmetres

    s1 : Aquesta és la cadena principal que s'ha d'examinar. s2 : Aquesta és la subcadena que s'ha de cercar a la cadena.

Valor de retorn

  • Aquesta funció retorna un punter al primer caràcter de l'element trobat s2 en s1 en cas contrari un punter nul si s2 no hi és present s1 .
  • Si s2 apunta a una cadena buida, es retorna s1.

Exemple

El programa següent il·lustra l'ús de la funció 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;> }>

>

>

Sortida

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

Complexitat temporal: O(n + m), on n és la mida de s1 i m és la mida de s2.
Espai auxiliar: O(m), on m és la mida de s2.

Nota: La implementació oficial de strstr() no s'especifica, se suposa que la seva implementació consisteix en qualsevol dels algorismes estàndard de concordança de cadenes. Aquí, hem suposat que s'implementa mitjançant l'algorisme Knuth-Morris-Pratt, que té una complexitat de temps i espai com s'ha dit anteriorment.

Aplicació : Substituïu una cadena per una altra

En aquest exemple amb l'ajuda de la funció strstr() primer cerquem l'ocurrència de la subcadena STL en s1 i després substitueix aquesta paraula per Cordes .

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

>

qui és freddie mercury
>

Sortida

Fun with Strings>

Complexitat temporal: O(n + m), on n és la mida de s1 i m és la mida de s2.
Espai auxiliar: O(m), on m és la mida de s2.