This one does not need the starting character.
Code:
std::vector<std::string> GetTokens2(const std::string& str, char delimit = ',' )
{
std::vector<std::string> tokens;
int pos = -1;
int pos2 = 0;
while ( true )
{
if ( pos2 == str.length() || str.at(pos2) == delimit )
{
tokens.push_back(str.substr(pos+1,pos2-pos-1));
pos = pos2;
}
if ( pos2 == str.length() )
break;
++pos2;
}
return tokens;
}
Works the same way basically.
Code:
std::vector<std::string> test = GetTokens2("123,2,3,4,5321353543,6,7,8,932,10,1112,12");
std::vector<std::string>::iterator iter = test.begin();
for (;iter != test.end(); ++iter )
std::cout << "Token: " << (*iter) << '\n';