Аргумент типа "char" не совместим с параметром типа "const char*"

Пытаюсь числа из строки добавить в массив типа int, но на этой строке выдает ошибку, пытался исправить, но не получилось, не понимаю как туда передать такой тип из строки.

#include <math.h>
using namespace std;

void  main()
{

    char str[1000];
    cin.getline(str, 1000);

   
    int* arr = new int[strlen(str)];
    cout << str;
    int i = 0, ii = 0;
    int k = 0;
    for (int j = 0; str[j] != 0; j++) {
        if (str[j] >= 48 and str[j] <= 57)
        {
            i++;
        }
        else {
            while (i > 0) {
                k += atoi(str[j - i]) * (pow(10, i)); // здесь ошибка 
                i--;
            }
            arr[ii] = k;
            ii++;
        }
    }
    delete []arr;
}

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

Автор решения: Kaktuts

Не нужен здесь atoi. Оставьте просто str[j - i]-'0'.
( С++ не видно тут пока )

ty @Roman Ozhegov

→ Ссылка
Автор решения: Harry

По-моему, вы хотите этого:

int main()
{
    char str[1000];
    cin.getline(str, 1000);

    int* arr = new int[strlen(str)];
    int arr_size = 0;

    for(const char *s = str; *s; ++s)
    {
        if (!isdigit(*s)) continue;
        char * e;
        arr[arr_size++] = strtol(s,&e,10);
        s = e - 1;
    }

    for(int i = 0; i < arr_size; ++i)
        cout << arr[i] << endl;

    delete []arr;
}
→ Ссылка