C++的string中的数字怎么提取?

来源:百度知道 编辑:UC知道 时间:2024/04/29 09:48:47
比如
1+24+31*4-6
可以将数字提取并放在一个向量里。
但怎么提取啊。请高手不吝赐教

#include <string>
#include <vector>
#include <iostream>
#include <sstream>
#include <iterator>
#include <algorithm>
using namespace std;

int main()
{
string str("1+24+31*4-6");

size_t idx = 0;
while((idx = str.find_first_of("+-*/", idx)) != string::npos)
str.replace(idx, 1, " ");

istringstream iss(str);
vector<int> v;
copy(istream_iterator<int>(iss), istream_iterator<int>(), back_inserter(v));

for(idx = 0; idx < v.size(); ++idx)
cout << v[idx] << ' ';
return 0;
}