1. 程式人生 > 其它 >C++ 關於字串分割函式split封裝

C++ 關於字串分割函式split封裝

技術標籤:C++

#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; }

在這裡插入圖片描述