Необходимо из строки вытащить все числа
Вроде проверяю вручную все должно работать корректно, но по факту выводится 547 0 0 0 4197984 0 4197136, вместо 547 5 10 8 3 2 2. Не пойму в чем ошибка
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <cstdlib>
using namespace std;
int main()
{
int n=0, j=0;
string s="547) картофель : 5 кг , рис : 10 кг , сахар : 8 кг, морковь : 3 кг , свекла : 2 кг , капуста : 2 кг";
string sbstr;
int mas[7];//номер картофель рис сахар морковь свекла капуста
for(int i=0; i<sizeof(s); i++)
{
if(isdigit(s[i]))
n++;
else{
if(isdigit( s[i-1])){
sbstr=s.substr(i-n, n);
mas[j]=atoi(sbstr.c_str());
j++;
}
n=0;
}
}
for(int i=0; i<7; i++)
cout << mas[i] << ' ';
}