将字符串中的所有数值,转换成数值并输出,要求使用递归方式
#include <iostream>
#include <vector>
using namespace std;
void dfs(string in,unsigned d,int val,vector<int > &res);
int main()
{
string in ="jasfg2a45646a fa6387af364";
vector<int > res;
dfs(in,0,0,res);
for(unsigned i=0;i<res.size();i++)
cout<< res[i] <<endl;
cout << "res.size()="<< res.size()<< endl;
return 0;
}
void dfs(string in,unsigned d,int val,vector<int > &res)
{
while((in[d]>='0'&&in[d]<='9')||d >= in.size())
{
if(d >= in.size())
{
val = val*10+(in[d]-'0');
res.push_back(val);
return;
}
val = val*10+(in[d]-'0');
d++;
}
if(val)
res.push_back(val);
val = 0;
dfs(in,++d,val,res);
}