Как я понял, в Си есть разные функции для работы со строками.
fgets() считывает ограниченное количество символов, в том числе пробелы и переводы строк.
scanf читает до пробела, к тому же при его использовании можно получить переполнение стека.
Есть ли функция, которая читает с пробелами и не заносит перевод строки (если нет, то как от него избавиться)?
Какие еще есть функции для работы со строками, и какие рекомендуется использовать?