In C
, нет способа, если вы хотите обработать "строку ввода, которая может иметь любую длину" .Вы должны выделить достаточно памяти для хранения ввода;то есть вы должны указать максимальное количество вводимых символов, которое ваша программа хочет обработать.
Если вы хотите обработать "строку ввода, которая может иметь любую длину" , вы можете использовать C++
std::string
, например:
std::string stringOfAnyLength;
getline(std::cin,stringOfAnyLength); //read user line input (can be of any length)
И ваш пример программы неверен, вы должны выделить достаточно буфера при вызове malloc
, прежде чем использовать name
для получения ввода пользователя:
char* name;
name=malloc((MAX_LEN+1)*sizeof(Char));
...
printf("\n\tEnter a string : ");
fgets(name,MAX_LEN,stdin);