2015-08-07 4 views
0

Мой Требование:«символьный массив» целых чисел к «Integer» массив

Принимая некоторые (неизвестное число) целых чисел в качестве входных данных от пользователя и хранить их в числовом массиве.

Например: вход: 25 3 4 78. Я хочу, чтобы хранить в числовой массив, скажем num в

num[0] = 25 
    num[1] = 3 
    num[2] = 4 
    num[3] = 78 
    . . . 

Что я сделал:

  1. Хранится вход в массив символов.

    получает (а); // принимает данные из командной строки и сохраняет в строке

  2. Затем я пытаюсь найти пробелы и отдельные символы, но оказывается, что double digit number(say,25) хранится как 2 и 5, но не как 25.

Как это достичь?

+3

'gets()' is ** evil **, вместо этого используйте 'fgets()'. #offtopic –

+0

показать свои усилия – snr

+0

@itsnotmyrealname Я считаю, что в этом случае объяснение моей проблемы говорит более четко, чем мой код. – Nikhil

ответ

3

Ну, так как вы не показывали свой код, я также не буду предоставлять какой-либо код, но я буду более чем счастлив предоставить вам блок-схему.

  1. Определите один массив достаточно большой (возможно, переход к динамическому распределению позже).
  2. Взять данные от пользователя (не аргументы командной строки) с использованием fgets().
  3. strtok() tokenize вход с использованием пробела в качестве разделителя.
  4. Если получен токен не-NULL, используйте strtol() для преобразования токена в int или long.
  5. Если strtok() вернулся NULL означает, что у вас есть все жетоны, и вход пуст, закончите, у вас есть массив int.
+1

Прохладный! Попробуем! Благодаря! :) – Nikhil

+0

@Sourav Ghosh это сработало. – Nikhil

+0

@ Олаф Прекратите троллинг и прекратите отмечать обычные вопросы как домашние задания и вне темы. Если вы слишком обеспокоены и обеспокоены качеством SO, то, пожалуйста, имейте в виду, что комментарии, подобные тем, которые вы сделали здесь, также имеют одинаковые, если нет, значения, подобные тем, которые вас не интересуют. – Nikhil

Смежные вопросы