如何在C ++中将数字字符串拆分为数组?

时间:2019-06-06 14:55:34

标签: c++ arrays string

我有string s = "4 99 34 56 28";

我需要将此字符串拆分为数组:[4, 99, 34, 56, 28]

我在Java中完成

String line = reader.readLine();
String[] digits = line.split(" ");

但是如何在C ++中做到这一点?没有外部库。

1 个答案:

答案 0 :(得分:1)

Split the string by spaces,并针对每个令牌(在您的情况下为数字)将字符串转换为int,如下所示:

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

using namespace std;

int main(void)
{
    string s("4 99 34 56 28");
    string buf;      
    stringstream ss(s); 

    vector<int> tokens;

    while (ss >> buf)
        tokens.push_back(stoi(buf));

    for(unsigned int i = 0; i < tokens.size(); ++i)
      cout << tokens[i] << endl;

    return 0;
}

输出:

4
99
34
56
28