002
12.05.2008, 17:44 Uhr
xXx
Devil
|
Hmm erstmal bekommst du ja, wenn du die entsprechende main-Form nimmst, an die Parameter über argv.
| C++: |
int main(int argc, char** argv)
|
. Dann steht in argv[1] "Hallo da steht ein Baum", argv[0] "dorep.exe" und in argv[2] steht "Baum%da".
Das ist doch schon ein Ansatz.
| C++: |
#include <string> #include <iostream>
const std::string censor_string(std::string const&, std::vector<std::string> const&); void split_string(std::string const&, std::vector<std::string>&);
int main(int argc, char** argv) { if (argc < 2) { std::cerr << "FEHLER: Zu wenige Parameter übergeben!" << std::endl; return 1; }
std::vector<std::string> forbidden_strings; split_string(argv[2], forbidden_strings);
const std::string original_text(argv[1]); std::clog << "Orginal Text: \"" << original_text << "\"\nZensierter Text: \"" << censor_string(original_text, forbidden_strings) << std::endl; }
|
so ... censor_string kannst de einfach per replace arbeiten ... split_string ... ganz einfach:
| C++: |
void split_string(std::string const& source, std::vector<std::string>& destionation) { std::string::size_type pos_begin(0); for (std::string::size_type pos_end(source.find('%', 1)); pos_end != std::string::npos; pos_end = source.find('%', pos_begin + 1)) { destination.push_back(source.substr(pos_begin, pos_end - pos_begin)); pos_begin = pos_end + 1; } }
|
hab es nicht getestet ... kann sein das noch das '%' Zeichen drin ist ... dann pass die substr-Länge einfach an. |