Kursinhalt
C++ Datentypen
C++ Datentypen
Suche Innerhalb von Strings
Methode find()
Manchmal müssen Sie nach einem bestimmten Text innerhalb eines string
suchen. Dies kann mit den Methoden .find()
oder .rfind()
erfolgen. Beginnen wir mit der .find()
Methode.
find
str.find("text to find")
Es gibt den Index des ersten Zeichens des ersten Treffers zurück.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; // (code)codefinity }
Sie können auch die Position des ersten Zeichens in der Zeichenkette angeben, das bei der Suche berücksichtigt werden soll. Dies kann mit dem pos
-Argument erfolgen. Alle Zeichen vor dem pos
-Index werden bei einer Suche ignoriert.
Hier ist ein Beispiel, um das erste "code"
ab dem 3. Zeichen zu finden.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code", 3) << std::endl; // __de(code)finity }
Methode rfind()
Sie können auch das letzte Vorkommen eines Textes mit der Methode .rfind()
lokalisieren.
rfind
str.rfind("text to find")
Während .find()
das erste Vorkommen eines Textes findet, sucht .rfind()
das letzte Vorkommen und steht für reverse find.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; std::cout << str.rfind("code") << std::endl; }
Hinweis
Wenn kein Treffer gefunden wird, geben sowohl
.find()
als auch.rfind()
einen speziellen Wert zurück,string::npos
. Dieser Wert repräsentiert keine Position und zeigt an, dass die Suche erfolglos war.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.rfind("abc") << endl; std::cout << std::string::npos << endl; }
Swipe to start coding
Erstellen Sie ein Programm, das "Found code"
ausgibt, wenn der String "code"
enthält, und "No code"
, wenn nicht.
- Schreiben Sie eine Bedingung, um keine Übereinstimmung mit
.find()
oder.rfind()
zu überprüfen. Ziehen Sie den Hinweis zu Rate, falls nötig. - Ersetzen Sie die Platzhalter
"___"
mit"Found code"
oder"No code"
, basierend auf Ihrerif
-Anweisung.
Lösung
solution
Danke für Ihr Feedback!
Suche Innerhalb von Strings
Methode find()
Manchmal müssen Sie nach einem bestimmten Text innerhalb eines string
suchen. Dies kann mit den Methoden .find()
oder .rfind()
erfolgen. Beginnen wir mit der .find()
Methode.
find
str.find("text to find")
Es gibt den Index des ersten Zeichens des ersten Treffers zurück.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; // (code)codefinity }
Sie können auch die Position des ersten Zeichens in der Zeichenkette angeben, das bei der Suche berücksichtigt werden soll. Dies kann mit dem pos
-Argument erfolgen. Alle Zeichen vor dem pos
-Index werden bei einer Suche ignoriert.
Hier ist ein Beispiel, um das erste "code"
ab dem 3. Zeichen zu finden.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code", 3) << std::endl; // __de(code)finity }
Methode rfind()
Sie können auch das letzte Vorkommen eines Textes mit der Methode .rfind()
lokalisieren.
rfind
str.rfind("text to find")
Während .find()
das erste Vorkommen eines Textes findet, sucht .rfind()
das letzte Vorkommen und steht für reverse find.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; std::cout << str.rfind("code") << std::endl; }
Hinweis
Wenn kein Treffer gefunden wird, geben sowohl
.find()
als auch.rfind()
einen speziellen Wert zurück,string::npos
. Dieser Wert repräsentiert keine Position und zeigt an, dass die Suche erfolglos war.
main
#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.rfind("abc") << endl; std::cout << std::string::npos << endl; }
Swipe to start coding
Erstellen Sie ein Programm, das "Found code"
ausgibt, wenn der String "code"
enthält, und "No code"
, wenn nicht.
- Schreiben Sie eine Bedingung, um keine Übereinstimmung mit
.find()
oder.rfind()
zu überprüfen. Ziehen Sie den Hinweis zu Rate, falls nötig. - Ersetzen Sie die Platzhalter
"___"
mit"Found code"
oder"No code"
, basierend auf Ihrerif
-Anweisung.
Lösung
solution
Danke für Ihr Feedback!