Contenu du cours
Types de Données C++
Types de Données C++
Recherche dans les Chaînes
Méthode find()
Parfois, vous pouvez avoir besoin de rechercher un texte spécifique dans une string
. Cela peut être fait en utilisant les méthodes .find()
ou .rfind()
. Commençons par la méthode .find()
.
find
str.find("text to find")
Elle renvoie l'index du premier caractère de la première correspondance.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; // (code)codefinity }
Vous pouvez également spécifier la position du premier caractère dans la chaîne à considérer dans la recherche. Cela peut être fait en utilisant l'argument pos
. Tous les caractères avant l'index pos
sont ignorés dans une recherche.
Voici un exemple de recherche du premier "code"
à partir du 3ème caractère.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code", 3) << std::endl; // __de(code)finity }
Méthode rfind()
Vous pouvez également localiser la dernière occurrence d'un texte en utilisant la méthode .rfind()
.
rfind
str.rfind("text to find")
Alors que .find()
récupère la première occurrence du texte, .rfind()
trouve la dernière occurrence et signifie recherche inversée.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; std::cout << str.rfind("code") << std::endl; }
Remarque
Si aucune correspondance n'est trouvée,
.find()
et.rfind()
renvoient une valeur spéciale,string::npos
. Cette valeur représente aucune position et indique que la recherche a échoué.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.rfind("abc") << endl; std::cout << std::string::npos << endl; }
Swipe to start coding
Créez un programme qui affiche "Found code"
si la chaîne contient "code"
, et "No code"
si elle ne le contient pas.
- Écrivez une condition pour vérifier l'absence de correspondance en utilisant
.find()
ou.rfind()
. Référez-vous à l'indice si nécessaire. - Remplacez les espaces réservés
"___"
par"Found code"
ou"No code"
, en fonction de votre instructionif
.
Solution
solution
Merci pour vos commentaires !
Recherche dans les Chaînes
Méthode find()
Parfois, vous pouvez avoir besoin de rechercher un texte spécifique dans une string
. Cela peut être fait en utilisant les méthodes .find()
ou .rfind()
. Commençons par la méthode .find()
.
find
str.find("text to find")
Elle renvoie l'index du premier caractère de la première correspondance.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; // (code)codefinity }
Vous pouvez également spécifier la position du premier caractère dans la chaîne à considérer dans la recherche. Cela peut être fait en utilisant l'argument pos
. Tous les caractères avant l'index pos
sont ignorés dans une recherche.
Voici un exemple de recherche du premier "code"
à partir du 3ème caractère.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code", 3) << std::endl; // __de(code)finity }
Méthode rfind()
Vous pouvez également localiser la dernière occurrence d'un texte en utilisant la méthode .rfind()
.
rfind
str.rfind("text to find")
Alors que .find()
récupère la première occurrence du texte, .rfind()
trouve la dernière occurrence et signifie recherche inversée.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; std::cout << str.rfind("code") << std::endl; }
Remarque
Si aucune correspondance n'est trouvée,
.find()
et.rfind()
renvoient une valeur spéciale,string::npos
. Cette valeur représente aucune position et indique que la recherche a échoué.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.rfind("abc") << endl; std::cout << std::string::npos << endl; }
Swipe to start coding
Créez un programme qui affiche "Found code"
si la chaîne contient "code"
, et "No code"
si elle ne le contient pas.
- Écrivez une condition pour vérifier l'absence de correspondance en utilisant
.find()
ou.rfind()
. Référez-vous à l'indice si nécessaire. - Remplacez les espaces réservés
"___"
par"Found code"
ou"No code"
, en fonction de votre instructionif
.
Solution
solution
Merci pour vos commentaires !