Необходимо из строки вытащить все числа

Вроде проверяю вручную все должно работать корректно, но по факту выводится 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] << ' ';
  
}


Ответы (0 шт):