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.