Zeichenkettenoperationen: concat, substr, find, replace
Verketten, teilen, durchsuchen und ersetzen Sie Zeichenketteninhalte mit der std::string-API
Zeichenkettenoperationen: concat, substr, find, replace ist eine kostenlose C++ Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C++ Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.
Verketten mit +
Der Operator + verbindet zwei Strings zu einem neuen String. += hängt Text direkt an den bestehenden String an.
std::string a = "Hello, ";
std::string b = "World";
std::string c = a + b; // "Hello, World"
a += b; // a is now "Hello, World"Effizient anhängen
Wiederholtes + bei langen Strings erzeugt viele temporäre Objekte. Verwenden Sie in zeitkritischen Schleifen += oder append().
std::string result;
for (auto& word : words) {
result += word;
result += ' ';
}Teilzeichenketten mit substr
substr(pos, len) gibt eine neue Zeichenkette zurück, die bei pos beginnt. len ist standardmäßig die verbleibende Länge der Zeichenkette.
std::string s = "Hello, World";
std::cout << s.substr(0, 5); // "Hello"
std::cout << s.substr(7); // "World"Teilzeichenketten finden: find
find(needle) gibt den Index des ersten Treffers zurück oder std::string::npos, wenn nichts gefunden wurde.
std::string s = "the quick brown fox";
auto pos = s.find("quick");
if (pos != std::string::npos)
std::cout << "Found at " << pos;Ab einer Position suchen
Übergeben Sie ein zweites Argument, um die Suche ab einem bestimmten Index zu starten — das ist nützlich, wenn Sie alle Vorkommen finden möchten.
std::string s = "abc abc abc";
size_t pos = 0;
while ((pos = s.find("abc", pos)) != std::string::npos) {
std::cout << pos << ' ';
pos += 3;
}rfind: Vom Ende suchen
rfind findet das letzte Vorkommen. find_first_of und find_last_of suchen nach beliebigen Zeichen aus einer Zeichenmenge.
Direkt ersetzen
replace(pos, len, str) ersetzt len Zeichen ab pos durch str — die neue Zeichenkette kann eine andere Länge haben.
std::string s = "Hello, World";
s.replace(7, 5, "C++");
std::cout << s; // "Hello, C++"Zeichen löschen
erase(pos, len) entfernt eine Teilzeichenkette. Der Aufruf von erase() ohne Argumente leert die gesamte Zeichenkette.
std::string s = "Hello, World";
s.erase(5, 2); // removes ", "
std::cout << s; // "HelloWorld"Zeichen einfügen
insert(pos, str) fügt str an Position pos ein und verschiebt alle nachfolgenden Zeichen nach rechts.
std::string s = "HelloWorld";
s.insert(5, ", ");
std::cout << s; // "Hello, World"Zeichenketten vergleichen
Verwenden Sie die standardmäßigen Vergleichsoperatoren oder compare(). Der Vergleich erfolgt lexikografisch.
std::string a = "apple", b = "banana";
if (a < b) std::cout << "apple comes first";Alle Vorkommen ersetzen
Die Standardbibliothek bietet keinen einzelnen Aufruf zum Ersetzen aller Vorkommen. Schreiben Sie eine einfache Hilfsfunktion oder verwenden Sie std::regex.
void replaceAll(std::string& s, const std::string& from, const std::string& to) {
size_t pos = 0;
while ((pos = s.find(from, pos)) != std::string::npos) {
s.replace(pos, from.size(), to);
pos += to.size();
}
}Kurze Überprüfung
Was gibt "hello".find("xyz") zurück, wenn die Teilzeichenkette nicht vorhanden ist?
Zusammenfassung
std::string bietet eine umfangreiche API: + und += zum Verketten, substr zum Ausschneiden, find zum Suchen sowie replace, erase und insert zum Bearbeiten. Vergleichen Sie das Ergebnis von find mit std::string::npos.
Häufig gestellte Fragen
Ist die Lektion „Zeichenkettenoperationen: concat, substr, find, replace“ kostenlos?
Ja — der vollständige Text von „Zeichenkettenoperationen: concat, substr, find, replace“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C++ Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Zeichenkettenoperationen: concat, substr, find, replace“?
Verketten, teilen, durchsuchen und ersetzen Sie Zeichenketteninhalte mit der std::string-API Du übst C++ Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um C++ Academy zu starten?
Keine Vorkenntnisse erforderlich. C++ Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Zeichenkettenoperationen: concat, substr, find, replace“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser C++ Academy-Lektion Code schreiben und ausführen?
Ja. Jede C++ Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- std::string und C-Style-Zeichenarrays im Vergleich
- Zeichenkettenoperationen: concat, substr, find, replace
- stringstream zur Textanalyse
- Zeichenkettenkonvertierung: to_string und stoi