c++ - 解析逗号分隔的 std::string

标签 c++ string parsing stl csv

如果我有一个包含逗号分隔的数字列表的 std::string,那么解析数字并将它们放入整数数组的最简单方法是什么?

我不想将其概括为解析其他任何内容。只是一个简单的逗号分隔整数字符串,例如“1,1,1,1,2,1,1,1,0”。

最佳答案

一次输入一个数字,检查后面的字符是否为,。如果是,请丢弃它。

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

int main()
{
    std::string str = "1,2,3,4,5,6";
    std::vector<int> vect;

    std::stringstream ss(str);

    for (int i; ss >> i;) {
        vect.push_back(i);    
        if (ss.peek() == ',')
            ss.ignore();
    }

    for (std::size_t i = 0; i < vect.size(); i++)
        std::cout << vect[i] << std::endl;
}

关于c++ - 解析逗号分隔的 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1894886/

相关文章:

c# - 为什么我无法在该解析树中获得正确的列位置?

c++ - 用 g++ .cpp 文件编译 gcc .o 文件

c# - 防止字符串转换为 Null 失败的最佳方法

C字符串用多个 '\n'分解一个字符串

java - Java中最简单的xml解析器,为xml中的新手生成代码

Python:使用命名空间解析 SVG/XML

c++ - 将两个整数相除并对结果进行四舍五入,不使用 float

c++ - 如何自己注册 "quartz.dll"?

c++ - 我如何使用 while 循环找到 GCD?模运算符如何工作?

java - 可以仅使用队列将中缀表示法中的字符串转换为前缀表示法吗? (考虑唯一的操作是 + 和 - 的情况)