Перевести числа, разделенные пробелами из строки в массив целых чисел
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char s[100+1];
int i;
int num[20];
fgets(s, 20, stdin);
for(i=0;i<20;i++) {
num[i]= atoi(s);
}
puts(s);
printf("%d",num[i]);
return 0;
}
Я пытался что-то сделать, но я не понимаю как использовать atoi для обработки всех символов строки, а не только символов до пробела.
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Ну, если нужна именно строка, я бы делал примерно так:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char s[100+1],*e,*b = s;
int d,i = 0;
int num[20];
fgets(s, 101, stdin);
for(d = strtol(b,&e,10); e != b && errno == 0;d = strtol(b = e,&e,10))
{
num[i++]= d;
}
puts(s);
for(int j = 0; j < i; ++j)
printf("%d ",num[j]);
}