void split(const std::string& src, const std::string& separator, std::vector<std::string>& dest)
{
string str = src;
string substring;
string::size_type start = 0, index;
dest.clear();
index = str.find_first_of(separator, start);
do
{
if (index != string::npos)
{
substring = str.substr(start, index - start);
dest.push_back(substring);
start = index + separator.size();
index = str.find(separator, start);
if (start == string::npos) break;
}
} while (index != string::npos);
substring = str.substr(start);
dest.push_back(substring);
}
std::vector<std::string> supersplit(const std::string& s, const std::string& c)
{
std::vector<std::string> result;
std::string::size_type pos1, pos2;
size_t len = s.length();
pos2 = s.find(c);
pos1 = 0;
while (std::string::npos != pos2)
{
result.emplace_back(s.substr(pos1, pos2 - pos1));
pos1 = pos2 + c.size();
pos2 = s.find(c, pos1);
}
if (pos1 != len)
result.emplace_back(s.substr(pos1));
return result;
}