本文主要是介绍C++ 关于字符串分割函数split封装,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#include#include#include#includeusing 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;}
这篇关于C++ 关于字符串分割函数split封装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!