Что делать, если неизвестно сколько символов потребуется завести под строку? Код C:
#include <stdio.h> #include <stdlib.h> int main() { long sLen = 0; //Длина строки //Начальное выделение памяти всего под один символ char ch, * str = (char *)malloc(sizeof(char)); printf("Введите строчку: "); while((ch = getchar()) != '\n') { str[sLen] = ch; str = (char *)realloc(str,(1+(sLen++))*sizeof(char)); } str[sLen] = '\0'; printf("Введенная строчка: %s\n",str); system("pause"); return 0; }
Демонстрация:
У способа есть недостатки (подсказка: связано с памятью).
|