Großartig!
Completion Rate verbessert auf 4.35single
Herausforderung: Suche Innerhalb von Zeichenketten
Swipe um das Menü anzuzeigen
Methode find()
Manchmal ist es erforderlich, nach einem bestimmten Text innerhalb eines string zu suchen. Dies kann mit den Methoden .find() oder .rfind() erfolgen. Beginnen wir mit der Methode .find().
find.h
1str.find("text to find")
Gibt den Index des ersten Zeichens des ersten Treffers zurück.
main.cpp
1234567#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; // (code)codefinity }
Es ist auch möglich, die Position des ersten zu berücksichtigenden Zeichens im String für die Suche anzugeben. Dies erfolgt über das Argument pos. Alle Zeichen vor dem Index pos werden bei der Suche ignoriert.
Hier ein Beispiel, wie das erste Vorkommen von "code" ab dem dritten Zeichen gefunden wird.
main.cpp
1234567#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code", 3) << std::endl; // __de(code)finity }
Methode rfind()
Mit der Methode .rfind() kann das letzte Vorkommen eines Textes gefunden werden.
rfind.h
1str.rfind("text to find")
Während .find() das erste Vorkommen eines Textes ermittelt, sucht .rfind() das letzte Vorkommen und steht für 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; }
Wenn .find() oder .rfind() die Teilzeichenkette nicht finden können, geben sie string::npos zurück. Dies ist eine numerische Konstante, die eine ungültige Position darstellt. Sie wird als größtmöglicher size_t-Wert gespeichert, was die Erkennung fehlgeschlagener Suchvorgänge erleichtert.
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
Sie erstellen einen einfachen E-Mail-Filter. Ihr Ziel ist es, Benutzern die Registrierung mit beliebigen E-Mails zu ermöglichen und E-Mails von codefinity.com als erlaubt zu markieren.
Die Funktion isAllowedEmail erhält eine email als string.
- Verwenden Sie
rfind(), um das letzte Vorkommen des'@'-Symbols in der E-Mail zu finden. - Vergleichen Sie das Ergebnis von
rfindmit-1, um zu prüfen, ob das'@'-Symbol existiert. Wenn kein'@'gefunden wird, geben Siefalsezurück, da die E-Mail ungültig ist. - Initialisieren Sie eine Zeichenkettenvariable
domainals leeren String. - Verwenden Sie eine
for-Schleife, beginnend beiatPos + 1bis zur Länge deremail, um über die Zeichen nach dem'@'zu iterieren. - Fügen Sie in jeder Iteration das aktuelle Zeichen der Variablen
domainhinzu. - Wenn
domaingleich"codefinity.com"ist, geben Sietruezurück. Andernfallsfalse.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen