Pequeña duda con metodo find.

Iniciado por @XSStringManolo, 12 Mayo 2019, 07:18 AM

0 Miembros y 1 Visitante están viendo este tema.

@XSStringManolo

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?









K-YreX

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.
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

@XSStringManolo