C++ 字符串分割

    java和C#中字符串都可以使用split进行分割,但是C++中却没有这个方法,之前总是自己写一个函数自己进行分割,倒也不麻烦,今天在网上找了类似的函数,发现strtoc()似乎可以完成字符串的分割功能。

原型:char *strtok(char s[], const char *delim);

用法:分解字符串为一组字符串。s为要分解的字符,delim为分隔符字符(如果传入字符串,则以首字符为分割标准)。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。 至于为啥之后要把s置成NULL我也不是很明白。

//借助strtok实现split
#include<iostream>
#include<string>
using namespace std;
int main()
{
	    string str= "abc def,aaa *bbb";
        const char *d = ",*";
        char *p;
		p = strtok((char *)str.c_str(),d);
        while(p)
        {
            cout<<p<<endl;
            p=strtok(NULL,d);
        }
        return 0;
}

需要注意的是:strtok是一个线程不安全的函数,因为它使用了静态分配的空间来存储被分割的字符串位置。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • c++学习笔记之封装篇(上)

    一、类对象 假设我们由Tv这个类,定义如下 注意class结尾要加上分号 class Tv() { int width; int hei...

    marsggbo
  • JNI基础

    JNI基础 将java中的字符串转换成C中字符串的工具方法 char* Jstring2CStr(JNIEnv* env, ...

    xiangzhihong
  • Androidstudio编译c/c++jni方法

    开发环境:Androidstudio2.3 开发目的:在Androidstudio上编译c/c++jni并自动生成so库,在java类中引用。 开发过程...

    fanfan
  • 人工智能的语言-PYTHON

    1989年的圣诞节33岁的荷兰人Guido van Rossum很是无聊,看完《Monty Python飞行马戏团》后,思绪便信马由缰地乱跑起来,脑子有一个声音...

    企鹅号小编
  • TensorFlow核心使用要点

    正文之前,小梦先来说说什么是TensorFlow。TensorFlow是谷歌研发的第二代人工智能学习系统,可被用于语音识别或图像识别等多项机器深度学 习领域。T...

    企鹅号小编
  • 2017年10大主流编程语言最新排行榜出炉

    前言 据美国科技公司Gizmodo报道,截至2014年9月24日,全世界采用IT操作系统的设备数量已经达到10亿台,IT推动中国移动互联网进入高速发展期,成为所...

    企鹅号小编
  • 不用临时变量,交换二个整型变量的值

    早上出门前看时间还早,反正出去等公交也是等,就捞起垫桌脚的一本书(C程序设计),随便翻了翻,看到下面这个方法,记录下来,说不定哪天就用到了: using Sys...

    菩提树下的杨过
  • C++ 对vector进行排序

    title: C++ vector排序 tags: c++,vector,排序 grammar_cjkRuby: true --- 每次都要重复造轮子真...

    marsggbo
  • C+虚函数实现多态性的思考

    相信这篇文字已经被这个晦涩的标题直接给PASS了,但笔者想把这些晦涩的概念说的生动些,C++和Python在编程思想上有很多是一致的,比如面向对象的思想,面向对...

    企鹅号小编
  • C++学习笔记之模板篇

    一、模板 不管是函数模板还是类模板,在未初始化前都是不占用内存的。 另外一般来说模板代码不能分开编译,即不能分开写成.h文件和.c文件,需要写成一个文件。 ...

    marsggbo

扫码关注云+社区

领取腾讯云代金券