特色技术

专业从事预应力结构体系的设计、施工一体化解决方案

资讯分类

一个超级实用、好用的C++分割函数

  • 分类:程序技术
  • 作者:
  • 来源:
  • 发布时间:2017-10-01 15:37
  • 访问量:

【概要描述】  在编程过程中,经常要对字符串、文件进行分割,目前C++没有直接的函数可以应用,各大网站给出的分割函数存在各式各样的问题,不能很好地应用到编程过程中。   实际上,利用STL中的string类以及泛型find函数,可以很好地解决这个问题。   现在给出本人研究出的结果,以便各位查询使用。

一个超级实用、好用的C++分割函数

【概要描述】  在编程过程中,经常要对字符串、文件进行分割,目前C++没有直接的函数可以应用,各大网站给出的分割函数存在各式各样的问题,不能很好地应用到编程过程中。

  实际上,利用STL中的string类以及泛型find函数,可以很好地解决这个问题。

  现在给出本人研究出的结果,以便各位查询使用。

  • 分类:程序技术
  • 作者:
  • 来源:
  • 发布时间:2017-10-01 15:37
  • 访问量:
详情

  在编程过程中,经常要对字符串、文件进行分割,目前C++没有直接的函数可以应用,各大网站给出的分割函数存在各式各样的问题,不能很好地应用到编程过程中。

  实际上,利用STL中的string类以及泛型find函数,可以很好地解决这个问题。

  现在给出本人研究出的结果,以便各位查询使用。

  原型:vector split(const string& src, string delimit)

  功能:分解字符串为一组字符串。

  参数说明:src为要分解的字符串,delimit为分隔符字符串。

  返回值:从src开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。

  vector split(const string& src, string delimit)

  {

  vector v;

  if( src.empty() || delimit.empty() )

  {

  cout<<"CPri::split--src.empty() ||

  delimit.empty()\n";

  return v;

  }

  S_T deli_len = delimit.size();

  long index = -1, last_search_position = 0;

  while( (index=src.find(delimit,

  last_search_position)) != npos )

  {

  if(index!=last_search_position)

  {

  v.push_back( src.substr(

  last_search_position,

  index-last_search_position) );

  }

  last_search_position = index + deli_len;

  }

  string last_one =

  src.substr(last_search_position);

  if (last_one.empty())

  {

  return v;

  }

  else

  {

  v.push_back(last_one);

  }

  return v;

  }

  使用说明:

  可以任意分割字符串、文本文件,舍弃开头、结尾的空格、回车键等space字符,并且可以忽略字符中间任意的空格键等,得到精准的分割效果。

  运行效果如下图:

扫二维码用手机看