C++ 关于字符串分割函数split封装

2021/5/7 22:26:59

本文主要是介绍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封装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程