将一个字符串依据一个字符或字符串将其分割为多个字符串是一个常用的字符串操作,但不知为什么STL并没有提供该项操作,于是只好自己动手,如下:
template<class charT, class traits, class allocator> vector<basic_string<charT, traits, allocator> > inline split(const basic_string<charT, traits, allocator>& source, const basic_string<charT, traits, allocator>& delimiter) { vector<basic_string<charT, traits, allocator> > result; basic_string<charT, traits, allocator> input = source; basic_string<charT, traits, allocator>::size_type index = input.find_first_of(delimiter); while(index != basic_string<charT, traits, allocator>::npos) { basic_string<charT, traits, allocator> substr = input.substr(0, index); input.erase(0, index + delimiter.size()); result.push_back(substr); index = input.find_first_of(delimiter); } result.push_back(input); return result; }