Søking og erstatting av tekst

C++:
Søking og erstatting av tekst

How to: (Slik gjør du det:)

For en enkel C++-oppgave kan du bruke std::string og std::string::replace. Her er et eksempel:

#include <iostream>
#include <string>

int main() {
    std::string text = "Hei, verden! Verden er herlig.";
    std::string text_to_search = "verden";
    std::string replacement = "Norge";

    size_t pos = text.find(text_to_search);

    while (pos != std::string::npos) {
        text.replace(pos, text_to_search.length(), replacement);
        pos = text.find(text_to_search, pos + replacement.length());
    }

    std::cout << text << std::endl; // Skriver ut: Hei, Norge! Norge er herlig.
}

Deep Dive (Dypdykk)

Før moderne C++ hadde vi kanskje brukt C-funksjoner som strstr og strncpy for tekstmanipulering. C++ tilbyr std::string og algoritmer som std::replace og std::regex_replace for disse oppgavene. Med std::regex_replace, kan du til og med bruke regulære uttrykk for avansert søk og erstatt. Effektiviteten av disse operasjonene kan variere basert på implementasjonen; for eksempel, ved å bruke find og replace i en løkke, kan det innføre mange allokeringer hvis strengen endres mye.

See Also (Se også)