29 #include "stringutils.h"
32 int32_t makeInt32(
const std::string& str) {
34 sscanf(str.c_str(),
"%d", &ret);
38 IntVector tokenize(
const std::string& str,
char delim,
char group) {
47 start = curr =
static_cast<int>(str.find_first_not_of(delim));
50 if(str[curr] == group) {
51 curr =
static_cast<int>(str.find_first_of(group, curr+1));
52 if((
size_t)curr == std::string::npos) {
56 std::string token = str.substr(start+1, curr-start-1);
57 tokens.push_back(makeInt32(token));
59 }
else if(str[curr] == delim) {
60 if(str[curr-1] != delim && str[curr-1] != group) {
61 std::string token = str.substr(start, curr-start);
62 tokens.push_back(makeInt32(token));
69 if(tokens.size() == 0) {
70 tokens.push_back(makeInt32(str));
74 if(str[curr-1] != delim && str[curr-1] != group) {
75 std::string token = str.substr(start, curr - 1);
76 tokens.push_back(makeInt32(token));