#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
vector<string> split(string T, string P){
vector<string> arr;
if(T=="")return arr;
unsigned point1 = 0, point2 = 0;
if(P==""||T.find(P,point1)==string::npos){//不分割或者原字符串找不到分割符
arr.push_back(T);
return arr;
}
while((point1=T.find(P,point1))!=string::npos){
if(point1==point2)arr.push_back("");
else arr.push_back(T.substr(point2,point1-point2));
point2 = point1+P.length();//跳过匹配串P
point1 += P.length();
}
if(point2<=T.length()-1)arr.push_back(T.substr(point2, T.length()-point2));
return arr;
}
int main(int argc, char const *argv[])
{
vector<string> arr = split(",1,,2,,,,333", ",,");
cout<<"arr.size = "<<arr.size()<<endl;
for(size_t i=0; i<arr.size(); i++){
if(arr[i]=="")cout<<"_ ";//代表为空
else cout<<arr[i]<<" ";
}
cout<<endl;
return 0;
}
版权声明:本文为qq_44647223原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。