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.h
1str.find("text to find")
Es 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 }
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.cpp
1234567#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.h
1str.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.cpp
12345678#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.cpp
12345678#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.cpp
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
Awesome!
Completion rate improved to 4.35
Suche Innerhalb von Strings
Swipe um das Menü anzuzeigen
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.h
1str.find("text to find")
Es 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 }
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.cpp
1234567#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.h
1str.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.cpp
12345678#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.cpp
12345678#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.cpp
Danke für Ihr Feedback!
Awesome!
Completion rate improved to 4.35single