Ich versuche, die split()
Funktion in boost/algorithm/string.hpp
in der folgenden Funktion zu nutzen:C++ Boost: Split-Funktion is_any_of()
vector<std::string> splitString(string input, string pivot) { //Pivot: e.g., "##"
vector<string> splitInput; //Vector where the string is split and stored
split(splitInput,input,is_any_of(pivot),token_compress_on); //Split the string
return splitInput;
}
Der folgende Aufruf:
string hello = "Hieafds##addgaeg##adf#h";
vector<string> split = splitString(hello,"##"); //Split the string based on occurrences of "##"
die Zeichenfolge teilt sich in "Hieafds" "addgaeg" "adf"
& "h"
. Allerdings möchte ich nicht, dass die Zeichenfolge durch eine einzelne #
geteilt wird. I denke,, dass das Problem mit is_any_of()
ist.
Wie sollte die Funktion so geändert werden, dass die Zeichenfolge nur durch das Auftreten von "##"
geteilt wird?
Versuchen Sie mit split_regex: http://www.cplusplus.com/faq/sequences/strings/split/#boost-split-regex – user1284631
Thanks =) Ich schätze, es funktioniert. – Enigman
können Sie auch iter_split (vec, str, first_finder ("##")) verwenden; (Siehe diese Antwort: http://stackoverflow.com/a/5710242/1284631) – user1284631