我对以下内容进行了解释,但不确定如何在其中包含分隔符.
void Tokenize(const string str, vector<string>& tokens, const string& delimiters)
{
int startpos = 0;
int pos = str.find_first_of(delimiters, startpos);
string strTemp;
while (string::npos != pos || string::npos != startpos)
{
strTemp = str.substr(startpos, pos - startpos);
tokens.push_back(strTemp.substr(0, strTemp.length()));
startpos = str.find_first_not_of(delimiters, pos);
pos = str.find_first_of(delimiters, startpos);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 17
在C++工具包字符串库(StrTk)具有以下溶液:
std::string str = "abc,123 xyz";
std::vector<std::string> token_list;
strtk::split(";., ",
str,
strtk::range_to_type_back_inserter(token_list),
strtk::include_delimiters);
Run Code Online (Sandbox Code Playgroud)
它应该导致token_list具有以下元素:
Token0 = "abc," Token1 = "123 " Token2 = "xyz"
更多例子可以在这里找到