#include<string>
#include<iostream>
#include<vector>
using namespace std;
vector<string> GetStringSplit(const string &rs, char splitChar)
{
size_t size = rs.size();
int pos = 0;
int prePos = pos;
vector<string> resultSplit;
while(pos != -1)
{
pos = rs.find(splitChar, prePos);
if(pos != -1)
{
string re = rs.substr(prePos, pos - prePos);
if (re.size() != 0)
resultSplit.push_back(re);
}
else//最后一个字符串
{
if(prePos != 0)
{
string re = rs.substr(prePos, pos - prePos);
if (re.size() != 0)
resultSplit.push_back(re);
}
else if(prePos == 0 && rs.size() != 0)//只有一个值时,没有分割字符
{
resultSplit.push_back(rs);
}
break;
}
prePos = pos + 1;
cout << "pos:" << pos << endl;
}
return resultSplit;
}
int main()
{
string result = "dfaf;dafa;afa;;;";
vector<string> resultSplit = GetStringSplit(result, ';');
vector<string>::iterator it = resultSplit.begin();
while(it != resultSplit.end())
{
cout << *it << endl;
it++;
}
return 0;
}
#include<iostream>
#include<vector>
using namespace std;
vector<string> GetStringSplit(const string &rs, char splitChar)
{
size_t size = rs.size();
int pos = 0;
int prePos = pos;
vector<string> resultSplit;
while(pos != -1)
{
pos = rs.find(splitChar, prePos);
if(pos != -1)
{
string re = rs.substr(prePos, pos - prePos);
if (re.size() != 0)
resultSplit.push_back(re);
}
else//最后一个字符串
{
if(prePos != 0)
{
string re = rs.substr(prePos, pos - prePos);
if (re.size() != 0)
resultSplit.push_back(re);
}
else if(prePos == 0 && rs.size() != 0)//只有一个值时,没有分割字符
{
resultSplit.push_back(rs);
}
break;
}
prePos = pos + 1;
cout << "pos:" << pos << endl;
}
return resultSplit;
}
int main()
{
string result = "dfaf;dafa;afa;;;";
vector<string> resultSplit = GetStringSplit(result, ';');
vector<string>::iterator it = resultSplit.begin();
while(it != resultSplit.end())
{
cout << *it << endl;
it++;
}
return 0;
}