Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: @XSStringManolo en 12 Mayo 2019, 07:18 AM

Título: Pequeña duda con metodo find.
Publicado por: @XSStringManolo en 12 Mayo 2019, 07:18 AM
Puedes confirmarme la siguiente afirmación?
Buscando el segundo "es", este no se encuetra debido a que find me retorna el indice de el primer caracter de "es", y al volver a usar found que ahora contiene el indice retornado por find de "es" y sumarle 1, find empieza a buscar "es" en la 's'. Por ese motivo no encuentra "es" en la cadena.
Estoy en lo correcto?

Código (cpp) [Seleccionar]

string MiString{"Este es mi string"};

void BuscarEnString(string MiString)
{
   size_t found = MiString.find("es");
   if (found != string::npos)
   {
         cout << "\" es\" encontrado en la posicion: " <<found <<endl;
   }

   found = MiString.find("es", found+1);
   if  (found != string::npos)
   {
         cout << "es encontrado en la posicion: " << found << endl;
   }
}



Estoy entendiendo como funciona el metodo find?








Título: Re: Pequeña duda con metodo find.
Publicado por: K-YreX en 12 Mayo 2019, 07:50 AM
Exacto así es.
En cambio si el primer "Es" estuviera escrito en minúsculas también, encontraría ese y después empezaría a buscar desde la "s" del primer "es" y encontraría también el segundo.
Título: Re: Pequeña duda con metodo find.
Publicado por: @XSStringManolo en 12 Mayo 2019, 08:19 AM
Ohhh genial! Gracias.