Heim >Backend-Entwicklung >C++ >Wie kann ich Teilzeichenfolgen in C effizient ersetzen?

Wie kann ich Teilzeichenfolgen in C effizient ersetzen?

DDD
DDDOriginal
2024-12-19 20:10:11757Durchsuche

How Can I Efficiently Replace Substrings in C  ?

Ersetzen eines String-Fragments durch einen neuen String

Das Ersetzen eines bestimmten Teils eines Strings durch einen alternativen String ist eine häufige Aufgabe in der Programmierung. In C bieten die Standardbibliotheken hierfür eine praktische Lösung.

Um einen Teilstring zu ersetzen, können Sie die Funktion find() nutzen, um die Startposition des Zielteilstrings innerhalb des Originalstrings zu lokalisieren. Anschließend können Sie die Funktion „replace()“ verwenden, um die Zielteilzeichenfolge durch die gewünschte Ersatzzeichenfolge zu ersetzen.

Der folgende Codeausschnitt veranschaulicht den Vorgang:

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");

Mit diesem Ansatz können Sie kann einen Teil einer Zeichenfolge nach Bedarf effektiv ändern.

Umgang mit mehreren Ersetzungen

Auf jeden Fall In bestimmten Szenarien müssen Sie möglicherweise mehrere Instanzen einer bestimmten Teilzeichenfolge innerhalb einer Zeichenfolge ersetzen. Um dieses Problem zu beheben, können Sie die Funktion „replaceAll()“ in Betracht ziehen, die wie folgt aussehen würde:

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

Diese Funktion durchläuft die Zeichenfolge, sucht und ersetzt alle Vorkommen der angegebenen Teilzeichenfolge durch die bereitgestellte Ersatzzeichenfolge.

Das obige ist der detaillierte Inhalt vonWie kann ich Teilzeichenfolgen in C effizient ersetzen?. 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