Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Challenge: Searching Within Strings | Tipo de Dato de Texto
Tipos de Datos en C++
Sección 3. Capítulo 6
single

single

bookChallenge: Searching Within Strings

Desliza para mostrar el menú

Método find()

A veces, es necesario buscar un texto específico dentro de un string. Esto se puede hacer utilizando los métodos .find() o .rfind(). Comencemos con el método .find().

find.h

find.h

copy
1
str.find("text to find")

Devuelve el índice del primer carácter de la primera coincidencia.

main.cpp

main.cpp

copy
1234567
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; // (code)codefinity }

También se puede especificar la posición del primer carácter en la cadena que se debe considerar en la búsqueda. Esto se realiza utilizando el argumento pos. Cualquier carácter antes del índice pos se ignora en la búsqueda.

Ejemplo de búsqueda de la primera aparición de "code" comenzando desde el tercer carácter.

main.cpp

main.cpp

copy
1234567
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code", 3) << std::endl; // __de(code)finity }

Método rfind()

También es posible localizar la última aparición de un texto utilizando el método .rfind().

rfind.h

rfind.h

copy
1
str.rfind("text to find")

Mientras que .find() recupera la primera aparición de un texto, .rfind() encuentra la última aparición y significa búsqueda inversa.

main.cpp

main.cpp

copy
12345678
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; std::cout << str.rfind("code") << std::endl; }
Note
Nota

Cuando .find() o .rfind() no pueden localizar la subcadena, devuelven string::npos. Este es una constante numérica que representa una posición no válida. Se almacena como el valor más grande posible de size_t, lo que facilita detectar búsquedas fallidas.

main.cpp

main.cpp

copy
12345678
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.rfind("abc") << std::endl; std::cout << std::string::npos << std::endl; }
Tarea

Desliza para comenzar a programar

Estás desarrollando un filtro de correo electrónico simple. Tu objetivo es permitir que los usuarios se registren con cualquier correo electrónico y marcar como permitidos los correos provenientes de codefinity.com.

La función isAllowedEmail recibe un email como string.

  1. Utiliza rfind() para encontrar el último símbolo '@' en el correo electrónico.
  2. Compara el resultado de rfind con -1 para verificar si existe el símbolo '@'. Si no se encuentra ningún '@', devuelve false porque el correo es inválido.
  3. Inicializa una variable de tipo string llamada domain como una cadena vacía.
  4. Utiliza un bucle for comenzando desde atPos + 1 hasta la longitud de email para iterar sobre los caracteres después del '@'.
  5. En cada iteración, agrega el carácter a la variable domain.
  6. Si domain es igual a "codefinity.com", devuelve true. De lo contrario, devuelve false.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 6
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

some-alt