C++ Encontrar caracteres en una cadena


Ejemplo

Para encontrar un carácter u otra cadena, puede usar std::string::find . Devuelve la posición del primer carácter de la primera partida. Si no se encontraron coincidencias, la función devuelve std::string::npos

std::string str = "Curiosity killed the cat";
auto it = str.find("cat");

if (it != std::string::npos)
    std::cout << "Found at position: " << it << '\n';
else
    std::cout << "Not found!\n";

Encontrado en la posición: 21


Las oportunidades de búsqueda se amplían aún más por las siguientes funciones:

find_first_of     // Find first occurrence of characters 
find_first_not_of // Find first absence of characters 
find_last_of      // Find last occurrence of characters 
find_last_not_of  // Find last absence of characters 

Estas funciones pueden permitirle buscar caracteres desde el final de la cadena, así como encontrar el caso negativo (es decir, los caracteres que no están en la cadena). Aquí hay un ejemplo:

std::string str = "dog dog cat cat";
std::cout << "Found at position: " << str.find_last_of("gzx") << '\n';

Encontrado en la posición: 6

Nota: tenga en cuenta que las funciones anteriores no buscan subcadenas, sino caracteres contenidos en la cadena de búsqueda. En este caso, la última aparición de 'g' se encontró en la posición 6 (los otros caracteres no se encontraron).