Geweldig!
Completion tarief verbeterd naar 4.35single
Uitdaging: Zoeken Binnen Strings
Veeg om het menu te tonen
Methode find()
Soms is het nodig om specifieke tekst binnen een string te zoeken. Dit kan worden gedaan met de methoden .find() of .rfind(). We beginnen met de .find() methode.
find.h
1str.find("text to find")
Geeft de index van het eerste teken van de eerste overeenkomst terug.
main.cpp
1234567#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; // (code)codefinity }
U kunt ook de positie van het eerste teken in de string opgeven dat in de zoekopdracht moet worden meegenomen. Dit kan worden gedaan met het argument pos. Alle tekens vóór de pos-index worden genegeerd tijdens het zoeken.
Hier is een voorbeeld van het vinden van de eerste "code" vanaf het derde teken.
main.cpp
1234567#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code", 3) << std::endl; // __de(code)finity }
Methode rfind()
Het is ook mogelijk om het laatste voorkomen van een tekst te vinden met de .rfind()-methode.
rfind.h
1str.rfind("text to find")
Terwijl .find() het eerste voorkomen van tekst ophaalt, vindt .rfind() het laatste voorkomen en staat voor reverse find.
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; }
Wanneer .find() of .rfind() de substring niet kan vinden, retourneren ze string::npos. Dit is een numerieke constante die een ongeldige positie weergeeft. Het wordt opgeslagen als de grootst mogelijke size_t waarde, waardoor het eenvoudig is om mislukte zoekopdrachten te detecteren.
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
Je bouwt een eenvoudig e-mailfilter. Het doel is om gebruikers toe te staan zich te registreren met elk e-mailadres en e-mails van codefinity.com als toegestaan te markeren.
De functie isAllowedEmail ontvangt een email als string.
- Gebruik
rfind()om het laatste'@'-symbool in het e-mailadres te vinden. - Vergelijk het resultaat van
rfindmet-1om te controleren of het'@'-symbool aanwezig is. Als er geen'@'wordt gevonden, retourneerfalseomdat het e-mailadres ongeldig is. - Initialiseer een stringvariabele
domainals een lege string. - Gebruik een
for-lus die start bijatPos + 1tot aan de lengte vanemailom te itereren over de tekens na het'@'-symbool. - Voeg in elke iteratie het teken toe aan de variabele
domain. - Als
domaingelijk is aan"codefinity.com", retourneertrue. Anders retourneerfalse.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.