首页 > 编程语言 >C++使用getline实现split的效果

C++使用getline实现split的效果

时间:2024-04-09 11:34:45浏览次数:12  
标签:std string delim C++ split include getline

0.问题

C++中并没有类似split的分隔符函数,如何自建一个呢?
我们考虑使用getline来实现所需功能。

1.代码

#include <iostream>
#include <string>
#include <vector>
#include <sstream>

// 使用字符串流将字符串分割成多个子串,并存储到 vector 中
std::vector<std::string> split(const std::string& str, char delim) {
    std::vector<std::string> tokens;
    std::stringstream ss(str);
    std::string token;
    while (std::getline(ss, token, delim)) {
        tokens.push_back(token);
    }
    return tokens;
}

int main() {
    std::string str = "hello world how are you";
    char delim = ' ';
    std::vector<std::string> words = split(str, delim);
    for (const std::string& word : words) {
        std::cout << word << std::endl;
    }
    return 0;
}

标签:std,string,delim,C++,split,include,getline
From: https://www.cnblogs.com/trmbh12/p/18123562

相关文章

  • C++ Note 继承指向
    引自:https://blog.csdn.net/baidu_35679960/article/details/80812527引自:https://blog.csdn.net/qq_21989927/article/details/111226696引自:https://www.runoob.com/cplusplus/cpp-polymorphism.html 为什么父类指针可以指向子类实例:可以通俗的理解,子类可能含有一些父类没......
  • 为什么C++中不能将数组的内容拷贝给其他数组作为初始值,也不能用数组给其他数组赋值
    0前言来自primer的3.5部分以下写法是有问题的inta[]={0,1,2}inta2[]=a;//错误,不允许使用一个数组初始化另一个数组a2=a;//错误:不能把一个数组赋值给另一个数组有些编译器支持上面的操作,但是书上说这属于非标准功能,是编译器扩展1原因C++中的数组......
  • C++与Qt中回调函数的两种实现方法
    一.回调函数介绍1.概念回调函数是一种在程序运行期间通过函数指针调用的函数,它通常用于实现事件驱动、异步通信、消息传递等功能。在回调函数中,被调用的函数通常称为回调函数(CallbackFunction),而调用回调函数的函数通常称为回调函数容器(CallbackContainer)。回调函数容器可......
  • 20240408,C++数组,函数,指针
    是谁说回老家学习结果摆烂了两天,是我,Π—Π! Π—Π!! 一,数组——同C1.1一维数组1.0  相同类型,连续内存,1.1  定义格式:数据类型数组名【长度】;数组类型数组名【长度】={1,2,3,……};数组类型数组名【】={1,2,3,……};1.2  遍历数组,初始化,下标【0-N】1.3  数组名:数......
  • 【C++对C语言的拓展】引用--3
    1.8指针引用#include <iostream>usingnamespace std; struct Teacher { char name[64]; int age ; }; //在被调⽤用函数获取资源int getTeacher(Teacher **p) {     Teacher *tmp = NULL; if (p == NULL)......
  • C++奇迹之旅:我与类和对象相遇
    文章目录......
  • C++ 入门一
    C++入门一1.C++关键字2.命名空间2.1命名空间定义2.2命名空间使用3.C++输入&输出C++是一种高级编程语言,由BjarneStroustrup在20世纪80年代初期在贝尔实验室开发。它是对C语言的扩展,添加了面向对象编程的特性,如类和对象、继承、多态和封装。C++支持多种编程范式,......
  • 【简单讲解下C++max函数的使用】
    ......
  • C++中lambda表达式介绍
    c++在c++11标准中引入了lambda表达式,一般用于定义匿名函数,使得代码更加灵活简洁。lambda表达式与普通函数类似,也有参数列表、返回值类型和函数体,只是它的定义方式更简洁,并且可以在函数内部定义。什么是Lambda表达式最常见的lambda的表达式写法如下autoplus=[](intv1,int......
  • 【C++11】C++11深度解剖
    >作者:დ旧言~>座右铭:松树千年终是朽,槿花一日自为荣。>目标:了解在C++11相关知识>毒鸡汤:苦尽甘来的那一天,山河星月都作贺礼。>专栏选自:C嘎嘎进阶>望小伙伴们点赞......