Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

sem7_2

.c
Скачиваний:
0
Добавлен:
29.05.2019
Размер:
1.44 Кб
Скачать
#include <stdio.h>
#include <stdlib.h>

char* get_line();//считать строку
int main()
{
 char* l = get_line();//считываем строку в переменную l
 puts(l);//выводим на экран
 return 0;
}
char* get_line()//считать строку
{
 int len = 0;//длина строки
 int real_len = 0;//сколько байт мы выделили
 char c;//символ, который мы считываем
 char* result = NULL;//результат - строка, которую возвращаем
 while((c = getchar()) != '\n')//считываем символ в переменную с пока не получим символ перехода на новую строку
 {
  //printf("%d %d\n", len, real_len);
  if(++len > real_len)//если выделенной памяти не хватает
  {
   real_len += 32;
   result = (char*)realloc(result, sizeof(char) * real_len);//выделяем еще 32 байта
  }
  result[len - 1] = c;//записываем считанный символ в строку
  //printf("/%d %d/", (int)result[len-1], (int)c);
 }
 result = (char*)realloc(result, sizeof(char) * ++len);//изменяем размер выделенной памяти до len+1 (1 байт для нулевого смвола)
 result[len - 1] = '\0';//последний символ - нклевой
 
 return result;//возвращает строку
}
Соседние файлы в предмете Информатика