//taken from fceux on 10/27/08
//subsequently modified for desmume
/*
Copyright (C) 2008-2009 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This file is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with the this software. If not, see .
*/
#include
#include
#include "xstring.h"
std::vector tokenize_str(const std::string &str, const std::string &delims = ", \t")
{
// Skip delims at beginning, find start of first token
auto lastPos = str.find_first_not_of(delims, 0);
// Find next delimiter @ end of token
auto pos = str.find_first_of(delims, lastPos);
// output vector
std::vector tokens;
while (pos != std::string::npos || lastPos != std::string::npos)
{
// Found a token, add it to the vector.
tokens.push_back(str.substr(lastPos, pos - lastPos));
// Skip delims. Note the "not_of". this is beginning of token
lastPos = str.find_first_not_of(delims, pos);
// Find next delimiter at end of token.
pos = str.find_first_of(delims, lastPos);
}
return tokens;
}