My Favorite Tokenizer
I have used this tokenizer countless times. It is easy to translate. I coded something similar in 32 bit Microsoft assemplber. If one learns a new language, this is a great function to translate. If one has to tokenize something, this is great code to cut copy paste, and use as a starting point.
void tokenize( string& input_string, string& seperators, vector& tokens)
{
size_t token_offset=0, seperator_offset, token_len;
for (seperator_offset=0; seperator_offset!=string::npos && token_offset != string::npos; ) {
token_offset = input_string.find_first_not_of( seperators, seperator_offset);
if (token_offset != string::npos) {
seperator_offset = input_string.find_first_of( seperators, token_offset);
token_len = (seperator_offset==string::npos)? (input_string.size() - token_offset):(seperator_offset - token_offset);
string token( input_string.substr( token_offset, token_len));
tokens.push_back( token);
}
}
}