c++ string int

来源:百度知道 编辑:UC知道 时间:2024/06/23 00:01:59
有这样一个字符串:
string str="1 54 6 23 234";
怎么把这些数字提取出来存到int数组里呢?(用C++)
字符串中数字的个数不确定

由于string中的数字个数不确定,那么将这些数字存到一个大小一定得int数组中,显然是不对的!
所以这里只能存到大小可变的容器中去(如,list,vector) 这里我是用vector
思路:
先将string中的字符串按delims(空格)分为几个小的字符串(数字组成的),然后对每一个小字符串用atoi()函数将其转换成对应的整数,然后将每个整数按顺序存到vector<int>中去:
#include <iostream>
#include <string>
#include <vector>
#include <cstring>
using namespace std;

int main ()
{
const string delims(" ");
string line;
vector<int> ivec; // containter for int

getline(cin, line);

string::size_type begIdx, endIdx;

begIdx = line.find_first_not_of(delims);

while (begIdx != string::npos) {
endIdx = line.find_first_of(delims, begIdx);
if (endIdx == string::npos) {
endIdx = line.length();
}
ivec.push_back(atoi(string(line, begIdx, endIdx-begIdx).c_str()));

begIdx = line.find_first_not_of(delims, endIdx);
}
for (vector<int>::const_ite