Sökning och ersättning av text

C++:
Sökning och ersättning av text

Hur man gör:

Sök och ersätt i C++ kan göras med hjälp av standardbiblioteket <algorithm> och <string>. Här är ett exempel:

#include <iostream>
#include <string>
#include <algorithm>

std::string searchAndReplace(std::string text, const std::string& search, const std::string& replace) {
    size_t pos = 0;
    while ((pos = text.find(search, pos)) != std::string::npos) {
        text.replace(pos, search.length(), replace);
        pos += replace.length();
    }
    return text;
}

int main() {
    std::string myText = "Hej och hej igen!";
    std::string newText = searchAndReplace(myText, "hej", "hallå");
    std::cout << newText << std::endl; // Output: "Hallå och hallå igen!"
}

Djupdykning

Förr, innan moderna editorer och IDE:er, var textbehandling ett gemensamt problem och sök- och ersättningsoperationer var inte så lätta att genomföra. Program som sed i Unix var banbrytande.

Nuförtiden har vi standardfunktioner som std::string::find och std::string::replace i C++, men det finns alternativ som regex-biblioteket <regex> för komplexa sökmönster och ersättningar.

En viktig aspekt vid implementation är effektiviteten; stor text kan kräva optimerade algoritmer för att undvika lång exekveringstid. Mindre textsträngar är generellt inget problem.

Se också