//vector<string> vec;
//char a[15]="aa,cc,bb";
// split(a,',',&vec);
//vec[0]=="aa,"
template<typename Container>
inline size_t split(std::string const& s, char delim, Container &elems) //保留分割字符
{
std::stringstream ss(s + ' ');
std::string item;
while (std::getline(ss, item, delim))
{
elems.insert(elems.end(), trim(item));
}
return elems.size();
}
//char a[15]="aa,cc,bb";
// split(a,',',&vec);
//vec[0]=="aa,"vec.size =2 返回bb
template<typename Container>
inline std::string split0(std::string const& s, char delim, Container &elems) //去掉分割字符 返回剩下的buf
{
auto off = s.find(delim);
auto buf = s;
while (off != std::string::npos) {
auto part = buf.substr(0, off + 1);
elems.push_back(part);
buf = buf.substr(off + 1);
off = buf.find(delim); // find next \n
}
return buf;
}
//char a[15]="aa,cc,bb";
// split(a,',',&vec);
//vec[0]=="aa,"vec.size =3
template<typename Container>
inline size_t split1(std::string const& s, char delim, Container &elems) // 去掉分割字符 全放入vec
{
auto off = s.find(delim);
auto buf = s;
while (off != std::string::npos) {
auto part = buf.substr(0, off + 1);
elems.push_back(part);
buf = buf.substr(off + 1);
off = buf.find(delim); // find next \n
}
elems.push_back(buf);
return elems.size();
}