最近做毕设用惯了Java,突然一个学弟找我问了道题,我发现C++没有split这个函数,还是挺麻烦的,于是找了找博客和实现思路。

#include <vector>
#include <string>
#include <iostream>
using namespace std;void SplitString(const std::string& s, std::vector<std::string>& v, const std::string& c)
{std::string::size_type pos1, pos2;pos2 = s.find(c);pos1 = 0;while(std::string::npos != pos2){v.push_back(s.substr(pos1, pos2-pos1));pos1 = pos2 + c.size();pos2 = s.find(c, pos1);}if(pos1 != s.length())v.push_back(s.substr(pos1));
}int main(){string s = "a*b*c*d*e";vector<string> v ;SplitString(s, v, "*");for(vector<string>::size_type i = 0; i != v.size(); ++i)cout << v[i] << " ";cout << endl;
}

也可以使用boost库的split,不过需要下载这个库。也可以使用strtok函数,C语言和C++都可以。

char  *strtok(char  *s,  const  char  *delim);

分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。

返回 从s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。

原型: char *strtok(char *str, const char *delim);

功能:分解字符串为一组字符串。

参数说明:str为要分解的字符串,delim为分隔符字符串。

返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。

其它:strtok函数线程不安全,可以使用strtok_r替代。

//借助strtok实现split
#include <string.h>
#include <stdio.h>int main()
{char s[] = "Golden Global   View,disk * desk";const char *d = " ,*";char *p;p = strtok(s,d);while(p){printf("%s\n",p);p=strtok(NULL,d);}return 0;
}

参考文章:

https://www.cnblogs.com/dfcao/p/cpp-FAQ-split.html?tdsourcetag=s_pctim_aiomsg

https://www.jb51.net/article/55954.htm

https://www.cnblogs.com/wkfvawl/p/9042695.html

C、C++实现 -- 字符串分割函数split相关推荐

  1. c语言将字符串按空格分割_如何在c++中实现字符串分割函数split详解

    前言 在学习c++中string相关基本用法的时候,发现了sstream的istringstream[1]可以将字符串类似于控制台的方式进行输入,而实质上这个行为等同于利用空格将一个字符串进行了分割, ...

  2. C++实现字符串分割函数split()

    目录 使用strtok()完成分割 使用strsep()完成分割 使用strtok_r()完成分割 实现字符串分割 前言 最近遇到了一个字符串分割的问题,在C++的标准库里面没有字符分割函数split ...

  3. c语言中字符切割函数split,c 语言 指针 C语言字符串分割函数split实现

    c语言也有类似其他语言的split字符串分割函数,就是strtok使用方法如下://用逗号做分隔符,读出内容//char s[] = "123-sldkf-123ls-343434-dfjd ...

  4. C++中string如何实现字符串分割函数split()——4种方法

    如: string str1 = "This is a test"; string str2 = "This-is-a-test"; string str2 = ...

  5. Java字符串分割函数split

    Java中的我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组,下面是string.split的用法实例及注意事项: 1.split 方法  将一个字符串分割为子字符串,然后将 ...

  6. SQL Server自定义字符串分割函数——Split

    我相信大部分人都碰到过,处理数据的时候,字段的值是以 ',' (逗号)分隔的形式,所以我也不能避免. 然后我才知道,sql 是没有类似于 C# 和 Javascript 这种分割字符串的方法.( Sp ...

  7. java对于 进行字符串分隔_Java字符串分割函数split中以·点分割的问题

    问题描述: // 把字符串"192.168.1.1"按照小圆点进行分割,分割成"192","168","1"," ...

  8. Split字符串分割函数

    非常非常常用的一个函数Split字符串分割函数. Dim myTest myTest = "aaa/bbb/ccc/ddd/eee/fff/ggg"Dim arrTest arrT ...

  9. C++的字符串分割函数

    转载:http://blog.csdn.net/shanzhizi/article/details/17189267 C++的字符串没有分割函数,因此需要自己写方便使用.而受到开发工具的影响,有很多用 ...

  10. php 字符串分割出数字,php 字符串分割函数的总结

    在php中字符串分割函数有很多很多,下面我来给各位朋友来介绍各种php中字符串分割实例,有需要的朋友可进入参考参考. PHP函数split()的基本语法为 array split ( string $ ...

最新文章

  1. c语言cythe头文件,第5章 C语言序的基本结构.doc
  2. 从零点五开始用Unity做半个2D战棋小游戏(完)
  3. [跟我一起涨姿势]未注册服务的RHEL6.4使用网易的CentOS源
  4. C\C++编程中:相对路径+绝对路径
  5. Linux手机适配,nginx同时适配PC版和手机移动版
  6. python 菜鸟教程字符串反转函数_转自python的菜鸟教程---字符串相关操作
  7. 【Scala】Scala的安装以及创建Scala项目的详细步骤
  8. 内存泄露与内存溢出的区别
  9. 最短路径之弗洛伊德算法
  10. 女程序员上班第一件事:调整IDE颜色以适配今天的衣着妆容
  11. Oracle密码过期处理
  12. 基于springboot+vue的旅游信息(旅游线路)网站(前后端分离)
  13. flex measure
  14. Jmeter压力测试-微信小程序
  15. MATLAB机械设计——二级齿轮减速器
  16. 南卡和Snowkids电容笔哪款更值得入手?口碑最佳的国产电容笔
  17. 简述windows计算机启动过程,计算机启动过程
  18. 用ImageMagick转换缩小JPG图像提高图像质量的方法
  19. JSP+JDBC案例代码(数据维护)
  20. b s html模板,【B/S】HTML~CSS初识

热门文章

  1. 学习yaf(二) 使用Bootstrap
  2. kill -3 获取threaddump信息
  3. filter的详细配置
  4. iptables 命令详解
  5. LeetCode:Minimum Window Substring
  6. 【博客管理】短期长期计划【置顶】
  7. 如何在vs2010中使用SSE指令集
  8. 基于麻雀算法的投影寻踪模型 - 附代码
  9. 从零基础入门Tensorflow2.0 ----七、36. 文本生成之---2. 构建模型
  10. 从零基础入门Tensorflow2.0 ----四、14. tf.io.decode_csv的使用