Cadena buscar se utiliza para encontrar la primera aparición de una subcadena en la cadena especificada que se llama. Devuelve el índice de la primera aparición de la subcadena en la cadena desde la posición inicial dada. El valor predeterminado de la posición inicial es 0.
Es una función miembro de std::cadena clase.
Sintaxis:
size_t find (const string& str, size_t pos = 0); // for C++ Style Strings or size_t find (const char* s, size_t pos = 0); // for C-Style Strings>
Parámetros:
- str: la subcadena que se buscará. s: la subcadena que se buscará, dada como una cadena de estilo C. pos: la posición inicial desde donde debe comenzar la búsqueda de cadenas.
Valor de retorno:
- La función devuelve el índice de la primera aparición de la subcadena.
- Si no se encuentra la subcadena, devuelve string::npos(string::pos es un miembro estático con su valor como el más alto posible para el tipo de datos size_t).
Análisis de complejidad:
alinear imagen con css
- Complejidad del tiempo: O(N*M), donde N es el tamaño de la cadena (cadena) y M es el tamaño de la subcadena que se buscará. Espacio auxiliar: O(1)
Ejemplo:
C++
// C++ program to demonstrate> // working of string.find()> #include> #include> using> namespace> std;> // Driver code> int> main()> {> >string str =>'geeksforgeeks a computer science'>;> >string str1 =>'geeks'>;> > >// Find first occurrence of 'geeks'> >size_t> found = str.find(str1);> >if> (found != string::npos)> >cout <<>'First occurrence is '> <<> >found << endl;> > >// Find next occurrence of 'geeks'.> >// Note here we pass> >// 'geeks' as C style string.> >char> arr[] =>'geeks'>;> >found = str.find(arr, found+1);> >if> (found != string::npos)> >cout <<>'Next occurrence is '> <<> >found << endl;> >return> 0;> }> |
>
>Producción
First occurrence is 0 Next occurrence is 8>
Encuentra la aparición de un personaje.
También podemos usar la función de búsqueda para encontrar la aparición de un solo carácter en la cadena.
Sintaxis:
size_t find (const char c, size_t pos = 0);>
Aquí, C es el personaje a buscar.
Ejemplo:
C++
java final
// C++ program to demonstrate> // working of string find> // to find occurrence of> // a character> #include> #include> using> namespace> std;> // Driver code> int> main()> {> >string str =>'geeksforgeeks a computer science'>;> >char> c =>'g'>;> >// Find first occurrence of 'g'> >size_t> found = str.find(c);> >if> (found != string::npos)> >cout <<>'First occurrence is '> <<> >found << endl;> > >// Find next occurrence of 'g'> >found = str.find(c, found + 1);> >if> (found != string::npos)> >cout <<>'Next occurrence is '> <<> >found << endl;> >return> 0;> }> |
>
>Producción
First occurrence is 0 Next occurrence is 8>
Buscar una cadena parcial
También podemos buscar una parte de la cadena dada.
Sintaxis:
size_t find (const char *str, size_t pos, size_t n);>
Aquí, norte es el número de caracteres que deben coincidir.
Ejemplo:
C++
// C++ program to demonstrate> // working of string find to> // search a string> #include> #include> using> namespace> std;> // Driver code> int> main()> {> >string str =>'geeksforgeeks a computer science'>;> > >// Only search first 5 characters> >// of 'geeks.practice'> >size_t> found = str.find(>'geeks.practice'>,> >0, 5);> >if> (found != string::npos)> >cout << found << endl;> >return> 0;> }> |
>
>Producción
0>