Tôi đang cố gắng sử dụng split()
chức năng cung cấp trong boost/algorithm/string.hpp
trong hàm sau:C++ Tăng: Tách chức năng 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;
}
Cuộc gọi sau đây:
string hello = "Hieafds##addgaeg##adf#h";
vector<string> split = splitString(hello,"##"); //Split the string based on occurrences of "##"
tách chuỗi thành "Hieafds" "addgaeg" "adf"
& "h"
. Tuy nhiên tôi không muốn chuỗi được chia cho một #
. Tôi nghĩ rằng rằng sự cố là với is_any_of()
.
Chức năng nên được sửa đổi sao cho chuỗi chỉ được phân chia bằng các lần xuất hiện của "##"
?
Hãy thử sử dụng split_regex: http://www.cplusplus.com/faq/sequences/strings/split/#boost-split-regex – user1284631
Thanks =) Tôi đoán nó hoạt động. – Enigman
cũng có, bạn có thể sử dụng iter_split (vec, str, first_finder ("##")); (xem câu trả lời này: http://stackoverflow.com/a/5710242/1284631) – user1284631