I am trying to split a string and put it in a vector
however, I also want to keep an empty token when there is a serial delimiter:
For instance:
string mystring = "::aa;;bb;cc;;c"
I would like tokenize this line to :; delimiters but between delimiters such as :: and ;; I would like to click on my empty line vector;
so my desired output for this string is: "" (empty) aa "" (empty) bb cc "" (empty) c
Also my requirement is not to use boost library.
If anyone could lend me an idea.
thanks
which symbolizes a string but does not include empty tokens
void Tokenize(const string& str,vector<string>& tokens, const string& delim) { // Skip delimiters at beginning. string::size_type lastPos = str.find_first_not_of(delimiters, 0); // Find first "non-delimiter". string::size_type pos = str.find_first_of(delimiters, lastPos); while (string::npos != pos || string::npos != lastPos) { // Found a token, add it to the vector. tokens.push_back(str.substr(lastPos, pos - lastPos)); // Skip delimiters. Note the "not_of" lastPos = str.find_first_not_of(delimiters, pos); // Find next "non-delimiter" pos = str.find_first_of(delimiters, lastPos); } }
source share