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.h
1str.find("text to find")
Elle renvoie l'index du premier caractère de la première correspondance.
main.cpp
1234567#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.cpp
1234567#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.h
1str.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.cpp
12345678#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.cpp
12345678#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.cpp
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 4.35
Recherche dans les Chaînes
Glissez pour afficher le menu
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.h
1str.find("text to find")
Elle renvoie l'index du premier caractère de la première correspondance.
main.cpp
1234567#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.cpp
1234567#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.h
1str.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.cpp
12345678#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.cpp
12345678#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.cpp
Merci pour vos commentaires !
Awesome!
Completion rate improved to 4.35single