C++中的字符分割是一个常见的应用,下面是一个字符串分割的代码:
//================ 字符串分割 ============ vector<string> split_string(const string& str, const string& delimiters) { vector<string> res; string split_str = str; size_t pos_delim = split_str.find(delimiters); while ( pos_delim != string::npos) { if (pos_delim == 0) { res.push_back(""); split_str.erase(0, 1); } else { res.push_back(split_str.substr(0, pos_delim)); split_str.erase(0, pos_delim + 1); } pos_delim = split_str.find(delimiters); } res.push_back(split_str); return res; } // 删除字符串前后空格 string del_space(string name) { while ((name.find_first_of(' ') == 0) && (name.length() > 0)) name.erase(0, 1); while ((name.find_last_of(' ') == (name.length() - 1)) && (name.length() > 0)) name.erase(name.end() - 1, name.end()); return name; } // 测试 int _tmain(int argc, _TCHAR* argv[]) { string split_str=" Hello World, 中国, 一跃, 成为, 世界, 第二大, 经济体, 对世界经济将产生深远影响! "; cout<<split_str<<endl<<endl; split_str = del_space(split_str); // 删除空格 cout<<split_str<<endl<<endl; vector<string> res; res = split_string(split_str, ","); for ( size_t i = 0; i<res.size(); i++) { cout<<res[i]<<endl; } getchar(); return 0; }