Se si eccede la dimensione della stringa si rischia di accedere ad aree di memoria riservate, il programma genererà un errore di accesso alla memoria e terminerà.

Per quanto riguarda il codice che ti ho postato, fgets è una funzione di libreria che legge un numero massimo di caratteri da un file (stdin rappresenta lo standard input), a questa segue un controllo che:
1)controlla che l'ultimo carattere inserito sia un a capo ('\n') per verificare che sia stata letta tutta la stringa;
2)controlla che la stringa inserità sia lunga esattamente il massimo voluto (escluso il terminatore di stringa)
se risulta vero, si sotituisce il '\n' con il '\0' (terminatore di stringa) e si copia il tutto nella stringa di output (facendo la sostituizione del '\n' risulterà che la stringa finale, compreso il terminatore di stringa, sarà esattamente lunga quanto i caratteri richiesti)
se invece non si verifica il primo if si controlla che sia stata riportata tutta la stringa nel buffer, sempre verificando che l'ultimo carattere sia un '\n', se non è così si procede a leggere ogni carattere sull'stdin fino ad un '\n' e ad eliminarli, si richiede il reinserimento e il ciclo ricomincia.