Génial!
Completion taux amélioré à 4.35single
Défi : Recherche Dans Les Chaînes De Caractères
Glissez pour afficher le menu
Méthode find()
Parfois, il peut être nécessaire de rechercher un texte spécifique dans une string. Cela peut être réalisé à l'aide des méthodes .find() ou .rfind(). Commençons par la méthode .find().
find.h
1str.find("text to find")
Elle retourne l’indice 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 }
Il est également possible de spécifier la position du premier caractère de la chaîne à prendre en compte lors de la recherche. Cela peut être réalisé à l'aide de l'argument pos. Tous les caractères précédant l'indice pos sont ignorés lors de la recherche.
Voici un exemple de recherche du premier "code" à partir du troisiè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()
Il est également possible de localiser la dernière occurrence d’un texte à l’aide de la méthode .rfind().
rfind.h
1str.rfind("text to find")
Alors que .find() récupère la première occurrence d'un 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; }
Lorsque .find() ou .rfind() ne parviennent pas à localiser la sous-chaîne, ils renvoient string::npos. Il s'agit d'une constante numérique qui représente une position invalide. Elle est stockée comme la plus grande valeur possible de size_t, ce qui facilite la détection des recherches infructueuses.
main.cpp
12345678#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.rfind("abc") << std::endl; std::cout << std::string::npos << std::endl; }
Swipe to start coding
Vous développez un filtre d'e-mails simple. Votre objectif est de permettre aux utilisateurs de s'inscrire avec n'importe quel e-mail et de marquer les e-mails provenant de codefinity.com comme autorisés.
La fonction isAllowedEmail prend un email de type string.
- Utilisez
rfind()pour trouver le dernier symbole'@'dans l'e-mail. - Comparez le résultat de
rfindavec-1pour vérifier si le symbole'@'existe. Si aucun'@'n'est trouvé, retournezfalsecar l'e-mail est invalide. - Initialisez une variable de type string nommée
domaincomme une chaîne vide. - Utilisez une boucle
forcommençant àatPos + 1jusqu'à la longueur deemailpour itérer sur les caractères après le'@'. - À chaque itération, ajoutez le caractère à la variable
domain. - Si
domainest égal à"codefinity.com", retourneztrue. Sinon, retournezfalse.
Solution
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