Я пишу программу на C, где есть пользовательский ввод. Этот вход представляет собой строку с целочисленными значениями, разделенными пробелом. Числа (кроме первого) должны храниться в целочисленном массиве. Первое число указывает, сколько чисел нужно сохранить (то есть размер массива).
Как проще всего это сделать на C? Вот пример:
input--> "5 76 35 95 14 20"
array--> {76, 35, 95, 14, 20}
Я искал вокруг, но я не могу найти решение своего вопроса. На данный момент я пытался сохранить значения ввода в массиве символов, и, когда есть пробел, я преобразовываю эту строку в целое число, используя atoi()
, и добавляю ее в массив целых чисел. Но он печатает странные значения. Это код:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char text[10];
scanf("%s", text);
int nums[4];
int indNs = 0;
char lastNum[10];
int indLN = 0;
for(int i = 0; i < 10; i++)
{
if(text[i] == ' ')
{
nums[indNs] = atoi(lastNum);
indNs++;
sprintf(lastNum, "%s", "");
indLN = 0;
} else
{
lastNum[indLN] = text[i];
indLN++;
}
}
nums[indNs] = atoi(lastNum);
for(int i = 0; i < 4; i++)
{
printf("%d\n", nums[i]);
}
}
fgets
, затемsscanf
в цикле - самый простой. - person kiran Biradar   schedule 14.06.2019int array[5]; int unused; sscanf(input, "%d %d %d %d %d %d", &unused, &array[0], &array[1], &array[2], &array[3], &array[4])
? - person KamilCuk   schedule 14.06.2019