/**
* Split string on delim.
*
* @param The string to be split.
* @param The separator characters.
* @returns Vector with the parts of the string split up. Empty strings will not remove from result.
*/
std::vector<std::string> split_string(const std::string& src_str, const char* delim)
{
std::vector<std::string> tokens;
if (src_str.empty() || nullptr == delim)
return tokens;
size_t delim_len = strlen(delim);
std::string::size_type pos = 0;
while(pos < src_str.size())
{
std::string::size_type next_pos = src_str.find(delim, pos);
if(std::string::npos == next_pos)
next_pos = src_str.size();
if(pos < next_pos)
tokens.push_back(src_str.substr(pos, next_pos - pos));
if(pos == next_pos)
tokens.push_back("");
pos = next_pos + delim_len;
}
return tokens;
}