Advertisement
Guest User

Untitled

a guest
Nov 26th, 2017
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.26 KB | None | 0 0
  1. char *getline()
  2. {  
  3.     char c; // заводится переменная для хранения в ней введенного символа
  4.     char *str = new char[1]; // выделяется память на динамический массив длиной в 1 элемент
  5.     size_t size = 1; // размер массива str
  6.  
  7.     for (int i = 0; std::cin >> c && c != '\n'; ++i) { // до тех пор пока не будет введен символ перевода строки
  8.         str[i] = c; //заносим введенный символ в последний элемент массива
  9.         char* tmp = new char[1+ size]; //выделяем память на массив длиной масиива length(str) + 1 элемент
  10.  
  11.         for (int j = 0; j < size; ++j) { //копируем значения str в tmp
  12.             tmp[j] = str[j];
  13.         }
  14.         delete[]str; //удаляем данные по адресу str
  15.         str = tmp;  //перенаправляем указатель str на область памяти, где записаны старые значения + 1 свободный элемент
  16.         size++; //увеличиваем размер элементов массива на 1
  17.         tmp = 0; //обнуляем указатель tmp
  18.     }
  19.     return str;
  20. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement