Sierra Toolkit  Version of the Day
tokenize.cpp
1 #include "tokenize.hpp"
2 
3 void stk_classic::util::tokenize(const std::string& str, const std::string& separators,
4  std::vector<std::string>& tokens)
5 {
6  std::string curr_token = "";
7  for (size_t i = 0; i < str.length(); ++i) {
8  char curr_char = str[i];
9 
10  // determine if current character is a separator
11  bool is_separator = false;
12  for (size_t j = 0; j < separators.length(); ++j) {
13  if (curr_char == separators[j]) {
14  is_separator = true;
15  break;
16  }
17  }
18 
19  if (is_separator && curr_token != "") {
20  // we just completed a token
21  tokens.push_back(curr_token);
22  curr_token.clear();
23  }
24  else if (!is_separator) {
25  curr_token += curr_char;
26  }
27  }
28  if (curr_token != "") {
29  tokens.push_back(curr_token);
30  }
31 }