特色技术
专业从事预应力结构体系的设计、施工一体化解决方案
一个超级实用、好用的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字符,并且可以忽略字符中间任意的空格键等,得到精准的分割效果。
运行效果如下图:
扫二维码用手机看