用标准库也许boost分割C++字符串
用标准库或者boost分割C++字符串
使用标准库
#include <iostream> #include <vector> #include <string> #include <sstream> using namespace std; std::vector<std::string> &split(const std::string &s, char delim, std::vector<std::string> &elems) { std::stringstream ss(s); std::string item; while (std::getline(ss, item, delim)) { if (!item.empty()){ elems.push_back(item); } } return elems; } std::vector<std::string> split(const std::string &s, char delim) { std::vector<std::string> elems; split(s, delim, elems); return elems; } int main(){ string s = "string to split a"; vector<string> columns = split(s, '\t'); for (vector<string>::iterator it = columns.begin(); it != columns.end(); it++){ cout << *it << endl; } return 0; }
使用boost
#include <iostream> #include <boost/algorithm/string.hpp> #include <vector> #include <string> using namespace std; int main(){ string s = "string to split a"; vector<string> strs; boost::split(strs, s , boost::is_any_of("\t")); for (vector<string>::iterator it = strs.begin(); it != strs.end(); it++){ cout << *it << endl; } return 0; }