python中的split函数非常好用(java,javascript,vb等语言也有提供),c++中的find,find_first_of,find_first_not_of...等函数也有其优点,但是分割字符串是个非常常见的问题,实现一个类似的函数供以后调用,会非常方便.
代码如下:
#include <iostream> #include <string> #include <vector> using namespace std; void split(vector<string> &v, string s, string delimitor=" ") { size_t pos = s.find(delimitor); size_t last_pos = 0; v.clear(); while (pos!=string::npos) { v.push_back(s.substr(last_pos,pos-last_pos)); last_pos = pos+delimitor.size(); pos = s.find(delimitor,last_pos); } if (last_pos<s.size()) v.push_back(s.substr(last_pos)); } int main() { string a = "aaaAAbbbAAcde"; vector<string> v; split(v,a,"AA"); for (size_t i=0;i<v.size();i++) cout << v[i] << " "; cout << endl; return 0; }
No comments :
Post a Comment