La función fgets() guarda al final de la cadena un '\n'. Dicho caracter no es parte en sí del texto tecleado (es el retorno de carro, me parece).
Saludos.
Get string from stream
Reads characters from stream and stores them as a C string into str until (num-1) characters have been read or either a newline or a the End-of-File is reached, whichever comes first.
A newline character makes fgets stop reading, but it is considered a valid character and therefore it is included in the string copied to str.
A null character is automatically appended in str after the characters read to signal the end of the C string.
Saludos