zoukankan      html  css  js  c++  java
  • C++中如何实现split的效果?

    C++中如何实现split的效果?

    和Python等语言不同,C++的string类没有内置split函数,这对于实际应用中要经常分割字符串的情况非常不方便。有很多种方法来处理,这里讲一种比较方(tou)便(lan)的方法——使用字符串流的方式吧:

    先上示例代码,这里是要读取一个存放在E盘根目录的一个csv文件(以逗号隔开的文本文件):

    #include <iostream>
    #include<sstream>
    #include <fstream>
    #include<vector>
    #include<string>
    using namespace std;
    int main()
    {
        ifstream in("E://packageProblem.csv");
        string line;
        while(getline(in,line)){
            cout<<"原始数据为:"<<line<<endl;
            istringstream sin(line);//实例化一个字符串流对象并读入line字符串,除了这种方式,还可以用sin.str(line)的方式写入。当然,多次使用同一个流是需要clear的。
            vector<string>fields;//承接分割后的字符串
            string field;
            while(getline(sin,field,',')){//将字符串流sin中的字符读入到field字符串中,以逗号为分隔符
                fields.push_back(field);
                cout<<field<<endl;
            }
        }
        cout<<endl;
    }
    

    文件中原本是:

    10,
    3,4
    4,5
    5,6
    

    输出为:

    原始数据为:10,
    10
    原始数据为:3,4
    3
    4
    原始数据为:4,5
    4
    5
    原始数据为:5,6
    5
    6
    

    当然这只是一种方法,实际上如果我们使用了vector的话,直接一个字符一个字符地遍历、到逗号处断开也可以,这里只是方法之一。

  • 相关阅读:
    一次性删除 .svn 文件夹
    vim
    03 练习题:字符串
    04 练习题:元组、列表
    05 练习题:字典
    Python基础学习笔记(07)基础类型操作及转化、编码
    Python基础学习笔记(06)代码块、集合、深浅copy
    Python基础学习笔记(05)字典
    Python基础学习笔记(04)列表、元组
    67.滚轮事件
  • 原文地址:https://www.cnblogs.com/jiading/p/11587992.html
Copyright © 2011-2022 走看看