Teil eines Strings durch einen anderen String ersetzen
Das Ersetzen eines Teilstrings innerhalb eines Strings ist eine häufige Aufgabe in der Programmierung, und C bietet mehrere Möglichkeiten es zu tun. Ein Ansatz besteht darin, die Standardfunktionen der C-Bibliothek „Suchen und Ersetzen“ zu verwenden.
Suchen und Ersetzen verwenden
Die Suchfunktion verwendet eine Zeichenfolge und eine Teilzeichenfolge als Argumente und führt sie aus gibt die Position des Teilstrings innerhalb des Strings zurück. Wenn der Teilstring nicht gefunden wird, gibt find den String::npos zurück. Um einen Teilstring durch einen anderen Teilstring zu ersetzen, können Sie die Ersetzungsfunktion verwenden. Die Ersetzungsfunktion benötigt eine Zeichenfolge, eine zu ersetzende Teilzeichenfolge und eine neue Teilzeichenfolge, durch die sie ersetzt werden soll. Hier ist ein Beispiel:
bool replace(std::string& str, const std::string& from, const std::string& to) { size_t start_pos = str.find(from); if(start_pos == std::string::npos) return false; str.replace(start_pos, from.length(), to); return true; } std::string string("hello $name"); replace(string, "$name", "Somename");
ReplaceAll verwenden
Wenn Sie alle Vorkommen eines Teilstrings durch einen anderen Teilstring ersetzen müssen, können Sie eine Funktion namens replaceAll verwenden. Hier ist eine Beispielimplementierung von replaceAll:
void replaceAll(std::string& str, const std::string& from, const std::string& to) { if(from.empty()) return; size_t start_pos = 0; while((start_pos = str.find(from, start_pos)) != std::string::npos) { str.replace(start_pos, from.length(), to); start_pos += to.length(); // In case 'to' contains 'from', like replacing 'x' with 'yx' } }
Sowohl „replace“ als auch „replaceAll“ sind effizient und einfach zu verwenden. Sie eignen sich zum Ersetzen von Teilzeichenfolgen innerhalb von Zeichenketten in einer Vielzahl von Anwendungen.
Das obige ist der detaillierte Inhalt vonWie kann man Teilstrings in C-Strings effizient ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!