分割字符串,逗号分隔
字符串切割的使用频率还是挺高的,string本身没有提供切割的方法,但可以使用stl提供的封装进行实现或者通过c函数strtok()函数实现。
1、通过stl实现
涉及到string类的两个函数find和substr:
1、find函数
原型:size_t find ( const string& str, size_t pos = 0 ) const;
功能:查找子字符串第一次出现的位置。
参数说明:str为子字符串,pos为初始查找位置。
返回值:找到的话返回第一次出现的位置,否则返回string::npos
2、substr函数
原型:string substr ( size_t pos = 0, size_t n = npos ) const;
功能:获得子字符串。
参数说明:pos为起始位置(默认为0),n为结束位置(默认为npos)
返回值:子字符串
代码如下:
std::vector<std::string> splitWithStl(const std::string &str,const std::string &pattern)
{std::vector<std::string> resVec;if ("" == str){return resVec;}//方便截取最后一段数据std::string strs = str + pattern;size_t pos = strs.find(pattern);size_t size = strs.size();while (pos != std::string::npos){std::string x = strs.substr(0,pos);resVec.push_back(x);strs = strs.substr(pos+1,size);pos = strs.find(pattern);}return resVec;
}
2、通过使用strtok()函数实现
原型:char *strtok(char *str, const char *delim);
功能:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。
描述:strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时 则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回被分割出片段的指针。
其它:strtok函数线程不安全,可以使用strtok_r替代。
代码如下:
vector<string> split(const string &str,const string &pattern)
{//const char* convert to char*char * strc = new char[strlen(str.c_str())+1];strcpy(strc, str.c_str());vector<string> resultVec;char* tmpStr = strtok(strc, pattern.c_str());while (tmpStr != NULL){resultVec.push_back(string(tmpStr));tmpStr = strtok(NULL, pattern.c_str());}delete[] strc;return resultVec;
}
分割字符串,逗号分隔相关推荐
- c语言 字符串分隔,c语言字符串分割–strtok | 逗号分隔-huangea的博客
c语言字符串分割–strtok | 逗号分隔 代码,原理是使用字符串分隔函数 Strtok()函数详解: 该函数包含在"string.h"头文件中 函数原型: char* strt ...
- 如何分割字符串以便可以访问项目x?
使用SQL Server,如何分割字符串以便可以访问项x? 取一个字符串" Hello John Smith". 我如何按空格分割字符串并访问索引1的项目,该项目应返回" ...
- scala 拆分字符串翻转_Scala程序分割字符串
scala 拆分字符串翻转 A string is a collection that stores multiple characters, it is an immutable sequence ...
- js长度超过1逗号分开_js怎么用逗号或者换行分割字符串
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:js怎么用逗号或者换行分割字符串回答:使用split()分割 str="2,2,3,5,6,6": 这是一字符串 var strs= ...
- jquery中如何以逗号分割字符串_百度知道
jquery中如何以逗号分割字符串_百度知道javascript本身就是带split方法的 定义和用法 split() 方法用于把一个字符串分割成字符串数组. 语法 stringObject.spli ...
- c语言以空格分割字符串_C语言: 利用sscanf() 函数分割字符串
头文件:#include sscanf()函数用于从字符串中读取指定格式的数据,其原型如下: int sscanf (char *str, char * format [, argument, ... ...
- python字符串按长度分割_python 按照固定长度分割字符串的方法小结
有如下的一堆mac地址,需要更改成一定格式,如mac='902B345FB021'改为mac='90-2B-34-5F-B0-21'. 借助python脚本,可以轻松实现,原理就是:字符串的按照固定长 ...
- B00009 C语言分割字符串库函数strtok
切割字符串是常用的处理. 这里给出一个使用函数strtok切割字符串的例子. 使用C语言的库函数strtok来切割字符串的好处在于,可以指定任意字符作为分隔符来切割单词.使用该函数,切割字符串的分隔符 ...
- R语言使用str_split函数和str_split_fixed函数将字符串分割(分裂、split)成几个部分:str_split函数使用指定的字符或者字符串分割字符串、str_split_fixed
R语言使用str_split函数和str_split_fixed函数将字符串分割(分裂.split)成几个部分:str_split函数使用指定的字符或者字符串分割字符串.str_split_fixed ...
最新文章
- 1微秒等于多少皮秒_1分钟了解,1皮秒到底有多短!
- C#写webservice(2)
- orcale 非非等于_oracle 不等于1怎么查?
- Ajax Toolkit Control ——CollapsiblePanelExtender(隐藏显示效果)
- php 返回map,PHP Ds\Map get()用法及代码示例
- 【小菜日志】用C#完成Allen Lee's Magic大虾推荐的F#作业F#学习中
- Effective C++ ------- virtual
- mongo执行逻辑表达式_MongoDB 常用查询操作
- Linux NULL定义
- js正则限制字符串长度_正则笔记(3)万字长文,慎点。
- FreeSql (二十七)将已写好的 SQL 语句,与实体类映射进行二次查询
- 8中间件,csrf跨站请求伪造,auth模块
- airflow时区问题
- OSPF基础配置命令
- 大华C++客户端面经
- labview入门到出家11(补充)——基于单片机和labview开发的虚拟示波器
- coap python_Python coap
- 在VisualStudio中使用EF操作Firebird数据库
- matlab画图nan,在Matlab中过滤包含NaN的图像?
- 简述:为什么硅胶按键要使用镭雕工艺?