Как записать строку n размера в Си

Допустим пользователь вводит n символов в строке. Как их записать и вывести? Я пытался так

char *str;
str=malloc(sizeof(char)*x(тут надо как то узнать размер строки);
fgets(str,strlen(str),stdin);
printf("%s",str);

Ответы (1 шт):

Автор решения: Mikhailo

Вам надо или знать пределььный размиер строки, больше которого пользователь не введет, либо тогда читать по символу и все время перераспределять память.

Если знаете, что пользователь не введет больше 1000 символов:

char *str = malloc(sizeof(char)*1000);
fgets(str,1000,stdin);
printf("%s",str);
→ Ссылка