Аргумент типа "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;
}