Ниже описано, как я использую строковый токенизатор.
typedef std::string string_t;
typedef std::vector<string_t> stations_t;
void Tokenize(const string_t& str, stations_t& tokens,const string_t& delimiters = " ") {
string_t::size_type lastPos = str.find_first_not_of(delimiters, 0);
string_t::size_type pos = str.find_first_of(delimiters, lastPos);
while (string_t::npos != pos || string_t::npos != lastPos){
tokens.push_back(str.substr(lastPos, pos - lastPos));
lastPos = str.find_first_not_of(delimiters, pos);
pos = str.find_first_of(delimiters, lastPos);
}
}
Когда я передаю строку 1,8003,1,HWH,Kolkata Howrah Junction,,16:10,,1,0
, она возвращает мне 8
поля, где, как и должно возвращаться 9
он полностью игнорирует ,,
часть.Может кто-нибудь, пожалуйста, посмотрите и помогите мне найти ошибку здесь.