Heim >Backend-Entwicklung >C++ >Wie führe ich eine teilweise String-Ersetzung in C durch?

Wie führe ich eine teilweise String-Ersetzung in C durch?

Barbara Streisand
Barbara StreisandOriginal
2025-01-04 18:34:43675Durchsuche

How to Perform Partial String Replacement in C  ?

Teilweises Ersetzen von Strings in C

Das Ersetzen bestimmter Abschnitte eines Strings ist eine häufige Aufgabe in der Programmierung. In diesem Artikel wird untersucht, wie solche Ersetzungen mithilfe der Standard-C-Bibliotheken durchgeführt werden.

Anfänglich vorgeschlagen, das Qt-Framework zu verwenden, das eine spezifische Ersetzungsmethode bereitstellt, befassen wir uns nun mit dem Ansatz der Standardbibliothek.

Standardbibliothekslösung

Die Standardbibliothek bietet die Such- und Ersetzungsfunktionen separat an. Durch die Kombination dieser Funktionen können wir einen Ersetzungsmechanismus implementieren:

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;
}

int main() {
    std::string string("hello $name");
    replace(string, "$name", "Somename");
    return 0;
}

Alle Vorkommen ersetzen

Um alle Vorkommen eines Teilstrings zu ersetzen, können wir eine Schleife verwenden Durchlaufen Sie die Zeichenfolge und führen Sie die Ersetzungen entsprechend durch:

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'
    }
}

Das obige ist der detaillierte Inhalt vonWie führe ich eine teilweise String-Ersetzung in C durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn