c++中字符串分割函数

来源:互联网 发布:sai for mac 10.12 编辑:程序博客网 时间:2024/05/22 17:34
1,简单点的方法以空格分割字符串
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
void main()
{
string str1 = "qwe  bbb  333";
string str2,str3,str4;
istringstream is(str1);
is>>str2>>str3>>str4;
cout<<str2<<","<<str3<<","<<str4<<endl;
}

2,具有通用性可以是任何字符分割的字符串

#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <string>
#include <sstream>
#include <deque>

using namespace std;

//字符串分割函数
vector< string> split( string str, string pattern)
{
vector<string> ret;
if(pattern.empty()) return ret;
size_t start=0,index=str.find_first_of(pattern,0);
while(index!=str.npos)
{
if(start!=index)
ret.push_back(str.substr(start,index-start));
start=index+1;
index=str.find_first_of(pattern,start);
}
if(!str.substr(start).empty())
ret.push_back(str.substr(start));
return ret;
}

int main()
{
string str="1^1^^^22334455^^^**";
string pattern="^*";
vector< string> result=split(str,pattern);
cout<<"The result:"<< endl;
for(int i=0; i<result.size(); i++)
{
cout<<result[i]<< endl;
}
// cout<<"azhu"<<endl;
return 0;
}




0 0
原创粉丝点击