Вы можете ввести строку, как показано ниже:
char *s = NULL;
size_t s_size;
getdelim(&s, &s_size, EOF, stdin);
В конечном счете, память выделяется для каждого символа в s
, и вы можете рассматривать ее как одну строку или несколько символов.
getdelim(3)
, будет вводить до тех пор, пока не встретится EOF
, и будет обрабатывать выделение памяти для вас внутри, как мы снабдили его NULL
(прочитайте связанную страницу man). Вы можете узнать количество символов, введенных с помощью s_size
.
PS: добавьте обработку ошибок в соответствии с вашими потребностями.