Разбор строки в C с использованием strtok и сохранение в массиве - PullRequest
0 голосов
/ 11 мая 2018

Я анализирую строку, используя strtok. Строка, которую я анализирую, может иметь две возможности, такие как "10,5" или "10" . Когда я анализирую "10,5" , я могу успешно поместить его в массив, но когда у меня есть это "10" , у меня есть 1 элемент 10, а другой элемент - большое целое число в массиве .

вот мой код

   int array[2];
   char *p = strtok (argv[1], ",");
   while (p != NULL)
   {
       array[n++] = atoi(p);
       p = strtok (NULL, ",");
   }

Любое предложение о том, как справиться с этим, пожалуйста?

1 Ответ

0 голосов
/ 11 мая 2018

Вы не инициализировали массив, поэтому, если цикл находит только одно число, вы получаете тот неинициализированный мусор, который был во втором элементе.

int array[2] = {0, 0};

инициализирует оба элемента 0. Если вход имеет только 10, массив будет содержать 10, 0.

...