C++ 以多字符为分隔符分割字符串
来源:互联网 发布:btob 知乎 编辑:程序博客网 时间:2024/04/28 06:10
发现,之前写的博客中,有一种分割方式是在是有点落后.因此改进了一下,这里主要是第一个函数,百度中可以查到.
#include <iostream>#include <vector>#include <string>using namespace std;char *strsep(char **stringp, const char *delim){//判断stringp是否为空,提高程序的容错性char *s;const char *spanp;int c, sc;char *tok;if ((s = *stringp)== NULL)return (NULL);for (tok = s;;) {c = *s++;spanp = delim;do {if ((sc =*spanp++) == c) {if (c == 0)s = NULL;elses[-1] = 0;*stringp = s;return (tok);}} while (sc != 0);}}void pushToVec(std::vector<std::string>&obj,const char *param,std::string token){char *p = (char*)param;char *key_point;while(p){while ( key_point = strsep(&p,token.c_str()))//关键字为c或d,它们连续出现了{//函数遇到token时,key_point指向token返回if (*key_point == 0)continue;elsebreak;}if (key_point)obj.push_back(key_point);}}int main(){vector<string> obj;string test("145,456,789,rtyy,http:www.baidu.com;");string token(",:.;");//使用","号,":"号,"."号,";"做分隔符pushToVec(obj,test.c_str(),token);for (size_t i = 0;i< obj.size();i++){cout<<obj[i]<<endl;}return 0;}
char *strsep(char **stringp, const char *delim)是用来分割的主要函数,pushTOVec函数仅仅是做了一个封装,将分割后的字符放到一个vector中用来看分割的效果,其实直接打印出来也可以.该函数可以传入多个分割字符,也可以只传入一个.
可以对比一下这个,我早些时候写的:http://blog.csdn.net/wangshiqilin_fjy/article/details/40982417
0 0
- C++ 以多字符为分隔符分割字符串
- C++分割字符串(以逗号分隔符为例,分割得到相应数字)
- Java 字符串分割函数 split() 在分割以“.”为分隔符时出现的问题
- substr 和 find函数实现自己的字符串分割函数(以指定分隔符分割字符串,分隔符可为字符串)
- C++中以固定分隔符分割CString字符串
- 以指定分隔符分割字符串存储到vector中
- Java 多字符分割字符串
- 换行符分隔字符串,多字符分隔字符串
- 使用分隔符分割字符串
- shell分割以,为分割符的字符串
- (C#)重写分隔符分割字符串 - string.Split(char[] separator)
- 逆序字符串或以空格为分隔符分别倒序
- 以空格为分隔符的字符串提取
- Java 多字符分割字符串(String.split() )
- C/C++分别读取文件,以空格为分隔符
- C/C++如何把一个特定分隔符分割的字符串划分为一个字符串数组,strtok(char *,char*)分割函数
- istringstream对象可以绑定一行字符串,然后以空格为分隔符把改行分隔开来
- istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。
- Eclipse崩溃后无法启动的问题解决
- 【Leetcode】Longest Increasing Path in a Matrix
- 文件
- Microsoft Office Visio Professional 2007密钥
- Android 自定义View学习2
- C++ 以多字符为分隔符分割字符串
- 166. Fraction to Recurring Decimal
- Single Number
- Middle-题目10:12. Integer to Roman
- 环信Android客户端集成文档
- leetcode 66. Plus One
- 使用Mule Studio开发ESB应用 - Hello World
- 框架整合
- 代理实现机制,Java中动态代理和cglib动态代理的实现机制