处于需要做的一个字符串分割函数,可以分割任意符号,出现任意多次
#include<iostream>
#include<vector>
#include <string>
using namespace std;
class Solution
{
public:
vector<string> split(const string &s,char splitchar)
{
auto start = 0;
auto length = s.length();
string tt;
vector<string> tmp;
if(tmp.size()>0)
tmp.clear();
for(auto i = 0;i<length;i++)
{
if(s[i] == splitchar && i == 0)
start++;
else if(s[i] == splitchar)
{
tt = s.substr(start,i-start);
if(!tt.empty())
{
tmp.push_back(tt);
}
start = i+1;
}
else if(i == length-1)
{
tt = s.substr(start,i-start+1);
if(!tt.empty())
{
tmp.push_back(tt);
}
start = i+1;
}
}
return tmp;
}
};
int main()
{
string s;
getline(cin,s);
Solution tg;
vector<string> re = tg.split(s,',');
cout << re.size() << endl;
for(auto i = re.begin();i<re.end();i++)
cout << *i << endl;
system("pause");
return 0;
}
总结:getline(cin,s),就是方便啊,可以获得以\n结尾的字符串;
判断字符串是否为空用s.empty(),看了一下它的定义,原来还是查看自己的成员,this->_MYSIZE;
参考博客:
http://blog.csdn.net/shshwdr/article/details/8765682
http://blog.csdn.net/xiaozezepingping/article/details/40627071