Добавил:
alex20000
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:sem7_2
.c#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;//возвращает строку
}
Соседние файлы в предмете Информатика