Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Recherche dans les Chaînes | Type de Données Texte
Types de Données C++
course content

Contenu du cours

Types de Données C++

Types de Données C++

1. Introduction
2. Types de Données Numériques
3. Type de Données Texte
4. Autres Types de Données et Concepts

book
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().

h

find

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

Elle renvoie l'index du premier caractère de la première correspondance.

cpp

main

copy
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.

cpp

main

copy
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().

h

rfind

copy
1
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.

cpp

main

copy
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é.

cpp

main

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

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.

  1. Écrivez une condition pour vérifier l'absence de correspondance en utilisant .find() ou .rfind(). Référez-vous à l'indice si nécessaire.
  2. Remplacez les espaces réservés "___" par "Found code" ou "No code", en fonction de votre instruction if.

Solution

cpp

solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 6
toggle bottom row

book
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().

h

find

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

Elle renvoie l'index du premier caractère de la première correspondance.

cpp

main

copy
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.

cpp

main

copy
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().

h

rfind

copy
1
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.

cpp

main

copy
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é.

cpp

main

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

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.

  1. Écrivez une condition pour vérifier l'absence de correspondance en utilisant .find() ou .rfind(). Référez-vous à l'indice si nécessaire.
  2. Remplacez les espaces réservés "___" par "Found code" ou "No code", en fonction de votre instruction if.

Solution

cpp

solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 6
Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
We're sorry to hear that something went wrong. What happened?
some-alt