En C/C++, std::strstr() es una función predefinida que se utiliza para la coincidencia de cadenas. es el archivo de encabezado requerido para las funciones de cadena. Esta función toma dos cadenas. s1 y s2 como argumentos y encuentra la primera aparición de la cadena s2 en la cuerda s1 . El proceso de coincidencia no incluye los caracteres nulos de terminación (' '), pero la función se detiene allí.
Sintaxis
char * strstr (const char * s1 , const char * s2 );>
Parámetros
- s1: esta es la cadena principal que se va a examinar. s2: esta es la subcadena que se buscará en la cadena.
Valor de retorno
- Esta función devuelve un puntero al primer carácter del encontrado s2 en s1 de lo contrario, un puntero nulo si s2 no está presente en s1 .
- Si s2 apunta a una cadena vacía, se devuelve s1.
Ejemplo
El siguiente programa ilustra el uso de la función 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;> }> |
>
>Producción
String found First occurrence of string 'for' in 'techcodeview.com' is 'forGeeks'>
Complejidad del tiempo: O(n + m), donde n es el tamaño de s1 y m es el tamaño de s2.
Espacio Auxiliar: O(m), donde m es el tamaño de s2.
Nota: La implementación oficial de strstr() no está especificada, se supone que su implementación consiste en cualquiera de los algoritmos estándar de coincidencia de cadenas. Aquí, hemos asumido que se implementa utilizando el algoritmo Knuth-Morris-Pratt, que tiene complejidad temporal y espacial como se indicó anteriormente.
Solicitud : Reemplazar una cadena con otra
En este ejemplo, con la ayuda de la función strstr(), primero buscamos la aparición de la subcadena STL en s1 y luego reemplaza esa palabra con Instrumentos de cuerda .
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;> }> |
>
cadena a carácter
>Producción
Fun with Strings>
Complejidad del tiempo: O(n + m), donde n es el tamaño de s1 y m es el tamaño de s2.
Espacio Auxiliar: O(m), donde m es el tamaño de s2.