C++:
Tekstin etsiminen ja korvaaminen
How to: (Kuinka:)
#include <iostream>
#include <string>
#include <algorithm>
int main() {
std::string text = "Hello, world! Hello, Finland!";
std::string to_search = "Hello";
std::string replace_with = "Hei";
// Replace all occurrences of 'to_search' with 'replace_with'
size_t pos = text.find(to_search);
while(pos != std::string::npos) {
text.replace(pos, to_search.length(), replace_with);
pos = text.find(to_search, pos + replace_with.length());
}
std::cout << text << std::endl; // Output: "Hei, world! Hei, Finland!"
return 0;
}
Deep Dive (Syvä Sukellus)
Vanhat C++-versiot vaativat manuaalista silmukointia tekstinkorjaukselle. Uudemmat standardit, kuten C++11 eteenpäin, tuovat lambda-funktiot ja std::regex, mikä helpottaa tehtävää huomattavasti. Vaihtoehtoja on monia: voi käyttää vanhempaa char*
-pohjaista käsittelyä, suosittua Boost-kirjastoa tai moderneja string-käsittelymetodeja. Tärkeää on valita tapa, joka on sekä tehokas että sopiva ongelmaan.
See Also (Katso Myös)
- C++ string handling: http://www.cplusplus.com/reference/string/string/
- Regular expressions in C++: http://www.cplusplus.com/reference/regex/
- Boost String Algorithms Library: https://www.boost.org/doc/libs/release/libs/algorithm/string/