Próbuję użyć funkcji split()
przewidzianego w boost/algorithm/string.hpp
w następującej funkcji:C++ Boost: podziału funkcji 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;
}
Poniższa rozmowa:
string hello = "Hieafds##addgaeg##adf#h";
vector<string> split = splitString(hello,"##"); //Split the string based on occurrences of "##"
dzieli ciąg do "Hieafds" "addgaeg" "adf"
& "h"
. Jednak nie chcę, aby łańcuch był dzielony przez pojedynczy #
. I Myślę, że, że problem jest z is_any_of()
.
Jak należy zmodyfikować funkcję, aby łańcuch był dzielony tylko przez wystąpienia "##"
?
Spróbuj użyć polecenia split_regex: http://www.cplusplus.com/faq/sequences/strings/split/#boost-split-regex – user1284631
Dzięki =) Myślę, że to działa. – Enigman
możesz również użyć iter_split (vec, str, first_finder ("##")); (zobacz tę odpowiedź: http://stackoverflow.com/a/5710242/1284631) – user1284631