#include "split.h" std::vector &split(const std::string &s, char delim, std::vector &elems) { std::stringstream ss(s); std::string item; while(std::getline(ss, item, delim)) { elems.push_back(item); } return elems; } std::vector split(const std::string &s, char delim) { std::vector elems; return split(s, delim, elems); } std::vector &split(const std::string &s, const std::string& delims, std::vector &elems) { char* tok; char cchars [s.size()+1]; char* cstr = &cchars[0]; strcpy(cstr, s.c_str()); tok = strtok(cstr, delims.c_str()); while (tok != NULL) { elems.push_back(tok); tok = strtok(NULL, delims.c_str()); } return elems; } std::vector split(const std::string &s, const std::string& delims) { std::vector elems; return split(s, delims, elems); }