C、C++实现 -- 字符串分割函数split

最近做毕设用惯了Java,突然一个学弟找我问了道题,我发现C++没有split这个函数,还是挺麻烦的,于是找了找博客和思路。

也可以使用boost库的split,不过需要下载这个库。

#include 
#include 
#include 
using namespace std;

void SplitString(const std::string& s, std::vector& 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 v ;
  SplitString(s, v, "*");
  for(vector::size_type i = 0; i != v.size(); ++i)
    cout << v[i] << " ";
  cout << endl;
}

参考文章:https://www.cnblogs.com/dfcao/p/cpp-FAQ-split.html?tdsourcetag=s_pctim_aiomsg

你可能感兴趣的:(C,C++,算法与数据结构)