栏目
/ Category
联系我们
/ CONTACT US
  • 地 址:江苏省如皋市中山路东方豪都6楼
  • 电 话:0513-87289069/68760932
  • 传 真:0513-87289069
  • 邮 箱:webmaster@jsyyl.com
程序技术 |一个超级实用、好用的C++分割函数

在编程过程中,经常要对字符串、文件进行分割,目前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字符,并且可以忽略字符中间任意的空格键等,得到精准的分割效果。


运行效果如下图:


上一篇:工程案例|援亚美尼亚中文学校预应力工程总结报告
下一篇:技术文章|C++函数的堆栈结构分析
返回顶部