C++标准库中没有提供split分隔字符串的函数,哎。
下面的实现需要指定分隔符的集合delimiters
,任何连续的属于该分隔符集合的字符组成一个分隔:
/**
* 根据分隔符,将字符串分隔开
* @param s 输入字符串
* @param delimiters 分隔符集合(跳过任何属于分隔符集合中的字符)
* @return 被分隔符隔开的子字符串列表
*/
std::vector<std::string> split(const std::string& s, const std::string& delimiters = " ") {
std::vector<std::string> tokens;
auto beg = s.find_first_not_of(delimiters, 0);
while (std::string::npos != beg) {
auto end = s.find_first_of(delimiters, beg);
tokens.push_back(s.substr(beg, end - beg));
beg = s.find_first_not_of(delimiters, end);
}
return tokens;
}
原文:https://www.cnblogs.com/HachikoT/p/13823461.html