我有string s = "4 99 34 56 28";
我需要将此字符串拆分为数组:[4, 99, 34, 56, 28]
我在Java中完成
String line = reader.readLine();
String[] digits = line.split(" ");
但是如何在C ++中做到这一点?没有外部库。
答案 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