Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Текст задания:

Разработать две функции, одна из которых вводит с клавиатуры набор данных в произвольной последовательности и размещает в памяти в заданном формате. 

Другая функция читает  эти  данные  и выводит на экран. 

Программа запрашивает и размещает в памяти несколько наборов данных при помощи первой функции, а затем читает их и выводит на экран при помощи второй. 

Размещение данных производить в выделенном массиве байтов с  контролем  его переполнения.

Само задание:

Последовательность строк символов. 

Каждая строка предваряется байтом - счетчиком символов. 

Ограничение последовательности - счетчик со значением 0.

Тоесть нужно взять массив строк, попросить пользователя ввести их с клавиатуры без символа конца строки, например:

abc  adflkjd dslf

Далее первая функция выделяет динамически память и размещает введенной в массиве, нужно, чтобы на экран вывелось как это выглядит в памяти, 

в закодированном виде.

А вторая функция типо должна вывести на экран , исходя из моего задания, вот это:

3abc7adflkjd4dslf0.

Вот как-то так. В задании есть ссылка на учебник, так же он рекомендовал учебник Павловксой С/С++ 

(ссылка https://docs.google.com/file/d/0BwOFp56IBbu9dGRveWVoUG8wbEE/preview), 

Доп информация:

Считывание строки неизвестной длины в динамический символьный массив

Плохой вариант:

#include

#include

int main()

{

long s_len = 0; //Будет содержать в себе длину строки

//Начальное выделение памяти всего под 1 символ

char ch, * str = (char *) malloc (sizeof(char));

printf ("Enter string :\n");

while ((ch = getchar()) != '\n') {

str[s_len] = ch;

str = (char *) realloc (str,(1 + (s_len++))*sizeof(char));

}

str[s_len] = '\0';

printf ("Your input : \n");

printf ("%s\n",str);

system("pause"); //Стоп-точка иначе приложение отработав сразу закроется

return 0;

}

Хороший вариант:

1.  Выделяете строку фиксированного размера. Можно использовать размер стандартного буфера, который обычно составляет 256 символов.

2.  Читаете строку с помощью функции fgets, которая гарантирует, что буфер не будет переполнен в отличии от функции gets, 

которую вам здесь рекомендовали, и которую не следует использовать, так как она не гарантирует, что буфер не будет переполнен.

3.  Затем смотрите, считан ли символ новой строки. Если не считан, то тогда удваиваете размер вашего исходного буфера и с помощью realloc() 

выделяете новый участок памяти.

4.  И так делаете до тех пор, пока в прочитанной строке не встретится символ новой строки '\n'

#define N 3

char pp;

pp = (char ) calloc(N, sizeof (char *));    //Отводим память на массив указателей

for (i = 0; i

  pp=(char *) calloc(256, sizeof (char));

for (i = 0; i

fgets (pp, 256, stdin); // Ввод строки

sh = strlen(pp); // Определяем длину строки

pp = (char *) realloc (pp, sh * sizeof (char)+1); // Уменьшаем длину строки

}

6 лет назад
bablden
Павел 
35 летРоссия
10 лет в сервисе
Был
год назад
Выбранный исполнитель
evgeniy_holodniy
Евгений 
45 летРоссия
7 лет в сервисе
Был
4 года назад
6 лет назад
$1
1 день
Исполнитель сделал очень быстро и качественно. Понял сразу всю суть задания. После проверки задания, быстро отреагировал на замечания и внес необходимые правки. Рекомендую!
Благодарен Павлу. Адекватный во всех отношениях заказчик. Постановка задачи четкая и понятная, оплата в срок. Рекомендую к сотрудничеству.