这个问题一直都有需求,但一直都没找到特别趁手的工具。
先就凑合着用下面这个吧,缺点是分界符号只能是单个char。
#include <sstream>
vector<string> &Split(const string &s, const char delim, std::vector<std::string> &elems) {
stringstream ss(s);
string item;
while(getline(ss, item, delim)){
// becuase getline() is going to include an empty string
// if there are more than two continuous delims, for example "two spaces"
if(item.length() != 0)
elems.push_back(item);
}
return elems;
}