最近做毕设用惯了Java,突然一个学弟找我问了道题,我发现C++没有split这个函数,还是挺麻烦的,于是找了找博客和实现思路。
#include <vector>
#include <string>
#include <iostream>
using namespace std;
void SplitString(const std::string& s, std::vector<std::string>& v, const std::string& c)
{
std::string::size_type pos1, pos2;
pos2 = s.find(c);
pos1 = 0;
while(std::string::npos != pos2)
{
v.push_back(s.substr(pos1, pos2-pos1));
pos1 = pos2 + c.size();
pos2 = s.find(c, pos1);
}
if(pos1 != s.length())
v.push_back(s.substr(pos1));
}
int main(){
string s = "a*b*c*d*e";
vector<string> v ;
SplitString(s, v, "*");
for(vector<string>::size_type i = 0; i != v.size(); ++i)
cout << v[i] << " ";
cout << endl;
}