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的话,直接一个字符一个字符地遍历、到逗号处断开也可以,这里只是方法之一。

  • 相关阅读:
    微信机器人-定制消息
    Python实现微信祝福语自动发送
    日常使用 ADB 命令
    python 中的三种等待方式
    Appium自动化测试之环境安装
    Charles 模拟弱网
    Navicat连接MySQL报错-2059
    requests高级用法
    requests基本用法
    Monkey测试环境搭建
  • 原文地址:https://www.cnblogs.com/jiading/p/11587992.html
Copyright © 2011-2022 走看看