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å
- C++ referens för
std::string
: http://www.cplusplus.com/reference/string/string/ - C++ referens för
std::regex
: http://www.cplusplus.com/reference/regex/ - Didaktisk förklaring av reguljära uttryck: https://www.regular-expressions.info/
- En guide till effektiv strängmanipulering: https://www.geeksforgeeks.org/string-manipulation-in-c/