Foro de elhacker.net

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
  1. string MiString{"Este es mi string"};
  2.  
  3. void BuscarEnString(string MiString)
  4. {
  5.   size_t found = MiString.find("es");
  6.   if (found != string::npos)
  7.   {
  8.         cout << "\" es\" encontrado en la posicion: " <<found <<endl;
  9.   }
  10.  
  11.   found = MiString.find("es", found+1);
  12.   if  (found != string::npos)
  13.   {
  14.         cout << "es encontrado en la posicion: " << found << endl;
  15.   }
  16. }


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.