So finden Sie eine TeilZeichenkette in String in C++
-
Verwenden Sie die Methode
find
, um eine TeilZeichenkette in einer Zeichenkette in C++ zu finden -
Verwenden Sie die Methode
rfind
, um eine Teilzeichenkette in einer Zeichenkette in C++ zu finden
![So finden Sie eine TeilZeichenkette in String in C++](/img/Cpp/feature-image---How-to-find-substring-in-string-Cpp.webp)
Dieser Artikel demonstriert Methoden zum Auffinden einer bestimmten TeilZeichenkette in einer Zeichenkette in C++.
Verwenden Sie die Methode find
, um eine TeilZeichenkette in einer Zeichenkette in C++ zu finden
Der einfachste Weg, das Problem zu lösen, ist die Funktion find
, die eine eingebaute string
-Methode ist, und sie nimmt ein anderes string
-Objekt als Argument.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl using std::string;
int main() {
string str1 = "this is random string oiwao2j3";
string str2 = "oiwao2j3";
string str3 = "random s tring";
str1.find(str2) != string::npos
? cout << "str1 contains str2" << endl
: cout << "str1 does not contain str3" << endl;
str1.find(str3) != string::npos
? cout << "str1 contains str3" << endl
: cout << "str1 does not contain str3" << endl;
return EXIT_SUCCESS;
}
Ausgabe:
str1 contains str2
str1 does not contain str3
Alternativ können Sie find
verwenden, um bestimmte Zeichenbereiche in zwei Zeichenketten zu vergleichen. Zu diesem Zweck sollten Sie die Startposition und die Länge des Bereichs als Argumente an die Methode find
übergeben:
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl using std::string;
using std::stoi;
int main() {
string str1 = "this is random string oiwao2j3";
string str3 = "random s tring";
constexpr int length = 6;
constexpr int pos = 0;
str1.find(str3.c_str(), pos, length) != string::npos
? cout << length << " chars match from pos " << pos << endl
: cout << "no match!" << endl;
return EXIT_SUCCESS;
}
Ausgabe:
6 chars match from pos 0
Verwenden Sie die Methode rfind
, um eine Teilzeichenkette in einer Zeichenkette in C++ zu finden
Die Methode rfind
hat eine ähnliche Struktur wie find
. Wir können rfind
benutzen, um die letzte Teilzeichenkette zu finden oder einen bestimmten Bereich angeben, um sie mit der gegebenen Teilzeichenkette abzugleichen.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl using std::string;
using std::stoi;
int main() {
string str1 = "this is random string oiwao2j3";
string str2 = "oiwao2j3";
str1.rfind(str2) != string::npos
? cout << "last occurrence of str3 starts at pos " << str1.rfind(str2)
<< endl
: cout << "no match!" << endl;
return EXIT_SUCCESS;
}
Ausgabe:
last occurrence of str3 starts at pos 22
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookVerwandter Artikel - C++ String
- Finden Sie das erste sich wiederholende Zeichen in einer Zeichenfolge in C++
- Finden Sie die längste gemeinsame Teilzeichenfolge in C++
- Großschreiben des ersten Buchstabens einer Zeichenfolge in C++
- Vergleich von String und Character in C++
- Entfernen Sie das letzte Zeichen aus einer Zeichenkette in C++
- Abrufen des letzten Zeichens einer Zeichenkette in C++