boost::split提取字符串需要注意的地方
2016-03-13 00:27
309 查看
#include <string> #include <iostream> #include <vector> #include <boost/algorithm/string.hpp> using namespace std; int main(){ vector<string> itemlist; string strinfo="name#wangkaixuan#id#111#password#222"; boost::split(itemlist, strinfo, boost::is_any_of("#")); for (int i = 0; i < itemlist.size(); ++i) { cout<<"strlist_"<<i<<"="<<itemlist[i]<<endl; } cout<<"---------------"<<endl; strinfo="name#@wangkaixuan#@id#@111#@password#@222"; boost::split(itemlist, strinfo, boost::is_any_of("#@")); for (int i = 0; i < itemlist.size(); ++i) { cout<<"strlist_"<<i<<"="<<itemlist[i]<<endl; } cout<<"---------------"<<endl; strinfo="name#@-wangkaixuan#@-id#@-111#@-password#@-222"; boost::split(itemlist, strinfo, boost::is_any_of("#@-")); for (int i = 0; i < itemlist.size(); ++i) { cout<<"strlist_"<<i<<"="<<itemlist[i]<<endl; } cout<<"---------------"<<endl; strinfo="name#@-wangkaixuan#@-id#@-111#@-password#@-222"; boost::split(itemlist, strinfo, boost::is_any_of("#@-"),boost::token_compress_on); for (int i = 0; i < itemlist.size(); ++i) { cout<<"strlist_"<<i<<"="<<itemlist[i]<<endl; } return 0; }
运行结果: iuc@iuc-linux ~/Project/CodeLibrares $ g++ split.cpp -o split iuc@iuc-linux ~/Project/CodeLibrares $ ./split strlist_0=name strlist_1=wangkaixuan strlist_2=id strlist_3=111 strlist_4=password strlist_5=222 --------------- strlist_0=name strlist_1= strlist_2=wangkaixuan strlist_3= strlist_4=id strlist_5= strlist_6=111 strlist_7= strlist_8=password strlist_9= strlist_10=222 --------------- strlist_0=name strlist_1= strlist_2= strlist_3=wangkaixuan strlist_4= strlist_5= strlist_6=id strlist_7= strlist_8= strlist_9=111 strlist_10= strlist_11= strlist_12=password strlist_13= strlist_14= strlist_15=222 --------------- strlist_0=name strlist_1=wangkaixuan strlist_2=id strlist_3=111 strlist_4=password strlist_5=222 iuc@iuc-linux ~/Project/CodeLibrares $ 结果分析: 默认情况下split的第四个参数是boost::token_compress_off,对于str = "asdfghjkl",以"fgh"切分结果为"asd",空,空,"jkl",注意,这里的空不是空格。而是'f','h'之间的空。如果不想要这个空,指定boost::token_compress_on就行了.
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- android上改变listView的选中颜色
- String.intern
- boost相关小知识(长期顶置更新)
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- PostgreSQL ERROR: invalid escape string 解决办法
- 浅谈C++中的string 类型占几个字节
- 标准C++类string的Copy-On-Write技术
- C++实现string存取二进制数据的方法
- C#中string和StingBuilder内存中的区别实例分析
- PHP STRING 陷阱原理说明
- c#中 String和string的区别介绍
- C#实现的图片、string相互转换类分享
- asp.net String.IsNullOrEmpty 方法
- JavaScript中字符串(string)转json的2种方法
- C#中string用法实例详解
- C#中的DataSet、string、DataTable、对象转换成Json的实现代码