#include<iostream>
#include<string>
#include<vector>
std::vector<std::string> StringToVector (const std::string s,
const char token)
{
std::vector<std::string> v;
size_t posLast = 0, pos = 0;
while((pos = s.find(token, pos)) != std::string::npos)
{
if(s[pos] != s[posLast])
v.push_back(s.substr(posLast, pos - posLast));
posLast = ++pos;
}
if(s[posLast] != 0) // If there is no terminating token found
v.push_back(s.substr(posLast));
return v;
}
int main (int argc, char** argv)
{
std::cout << "\n\"\":\n";
for(auto& i : StringToVector("", ','))
std::cout << i << std::endl;
std::cout << "\n\"a,b,c,d,\":\n";
for(auto& i : StringToVector("a,b,c,d,", ','))
std::cout << i << std::endl;
std::cout << "\n\"a,,,\":\n";
for(auto& i : StringToVector("a,,,", ','))
std::cout << i << std::endl;
std::cout << "\n\",,a,\":\n";
for(auto& i : StringToVector(",,a,", ','))
std::cout << i << std::endl;
std::cout << "\n\",,,,\":\n";
for(auto& i : StringToVector(",,,,", ','))
std::cout << i << std::endl;
std::cout << "\n\"a\":\n";
for(auto& i : StringToVector("a", ','))
std::cout << i << std::endl;
std::cout << "\n\",,a\":\n";
for(auto& i : StringToVector(",,a", ','))
std::cout << i << std::endl;
std::cout << "\n\"a,b,c,d\":\n";
for(auto& i : StringToVector("a,b,c,d", ','))
std::cout << i << std::endl;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8dmVjdG9yPgoKc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IFN0cmluZ1RvVmVjdG9yIChjb25zdCBzdGQ6OnN0cmluZyBzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgdG9rZW4pCnsKICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gdjsKCiAgc2l6ZV90IHBvc0xhc3QgPSAwLCBwb3MgPSAwOwogIHdoaWxlKChwb3MgPSBzLmZpbmQodG9rZW4sIHBvcykpICE9IHN0ZDo6c3RyaW5nOjpucG9zKQogIHsKICAgIGlmKHNbcG9zXSAhPSBzW3Bvc0xhc3RdKQogICAgICB2LnB1c2hfYmFjayhzLnN1YnN0cihwb3NMYXN0LCBwb3MgLSBwb3NMYXN0KSk7CiAgICBwb3NMYXN0ID0gKytwb3M7CiAgfQogIGlmKHNbcG9zTGFzdF0gIT0gMCkgIC8vIElmIHRoZXJlIGlzIG5vIHRlcm1pbmF0aW5nIHRva2VuIGZvdW5kCiAgICB2LnB1c2hfYmFjayhzLnN1YnN0cihwb3NMYXN0KSk7CgogIHJldHVybiB2Owp9CgppbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQp7CiAgc3RkOjpjb3V0IDw8ICJcblwiXCI6XG4iOwogIGZvcihhdXRvJiBpIDogU3RyaW5nVG9WZWN0b3IoIiIsICcsJykpCiAgICBzdGQ6OmNvdXQgPDwgaSA8PCBzdGQ6OmVuZGw7CgogIHN0ZDo6Y291dCA8PCAiXG5cImEsYixjLGQsXCI6XG4iOwogIGZvcihhdXRvJiBpIDogU3RyaW5nVG9WZWN0b3IoImEsYixjLGQsIiwgJywnKSkKICAgIHN0ZDo6Y291dCA8PCBpIDw8IHN0ZDo6ZW5kbDsKCiAgc3RkOjpjb3V0IDw8ICJcblwiYSwsLFwiOlxuIjsKICBmb3IoYXV0byYgaSA6IFN0cmluZ1RvVmVjdG9yKCJhLCwsIiwgJywnKSkKICAgIHN0ZDo6Y291dCA8PCBpIDw8IHN0ZDo6ZW5kbDsKCiAgc3RkOjpjb3V0IDw8ICJcblwiLCxhLFwiOlxuIjsKICBmb3IoYXV0byYgaSA6IFN0cmluZ1RvVmVjdG9yKCIsLGEsIiwgJywnKSkKICAgIHN0ZDo6Y291dCA8PCBpIDw8IHN0ZDo6ZW5kbDsKCiAgc3RkOjpjb3V0IDw8ICJcblwiLCwsLFwiOlxuIjsKICBmb3IoYXV0byYgaSA6IFN0cmluZ1RvVmVjdG9yKCIsLCwsIiwgJywnKSkKICAgIHN0ZDo6Y291dCA8PCBpIDw8IHN0ZDo6ZW5kbDsKCiAgc3RkOjpjb3V0IDw8ICJcblwiYVwiOlxuIjsKICBmb3IoYXV0byYgaSA6IFN0cmluZ1RvVmVjdG9yKCJhIiwgJywnKSkKICAgIHN0ZDo6Y291dCA8PCBpIDw8IHN0ZDo6ZW5kbDsKCiAgc3RkOjpjb3V0IDw8ICJcblwiLCxhXCI6XG4iOwogIGZvcihhdXRvJiBpIDogU3RyaW5nVG9WZWN0b3IoIiwsYSIsICcsJykpCiAgICBzdGQ6OmNvdXQgPDwgaSA8PCBzdGQ6OmVuZGw7CgogIHN0ZDo6Y291dCA8PCAiXG5cImEsYixjLGRcIjpcbiI7CiAgZm9yKGF1dG8mIGkgOiBTdHJpbmdUb1ZlY3RvcigiYSxiLGMsZCIsICcsJykpCiAgICBzdGQ6OmNvdXQgPDwgaSA8PCBzdGQ6OmVuZGw7CiAgcmV0dXJuIDA7Cn0K