C++ Trovare caratteri (s) in una stringa


Esempio

Per trovare un carattere o un'altra stringa, puoi usare std::string::find . Restituisce la posizione del primo carattere della prima partita. Se non sono state trovate corrispondenze, la funzione restituisce 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";

Trovato in posizione: 21


Le opportunità di ricerca sono ulteriormente ampliate dalle seguenti funzioni:

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 

Queste funzioni consentono di cercare caratteri dalla fine della stringa e di trovare il caso negativo (cioè i caratteri che non sono nella stringa). Ecco un esempio:

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

Trovato in posizione: 6

Nota: tenere presente che le funzioni di cui sopra non cercano sottostringhe, ma piuttosto per i caratteri contenuti nella stringa di ricerca. In questo caso, l'ultima occorrenza di 'g' stata trovata nella posizione 6 (gli altri caratteri non sono stati trovati).