Lo strlen() lo fai sulla stringa una volta che questa e' stata inserita e non risulta utile per cio' che hai in mente di fare.
Mi spiego meglio : se il buffer e' di 10 caratteri e chiami uno scanf nel quale inserisci una stringa di 15 il programma si blocca e va in "Segmentation Fault" perche' non riesce ad allocare tutta la stringa nel buffer definito.
Con la fgets hai la certezza che saranno memorizzati solo i primi N caratteri e cercherai di far coincidere N con la grandezza del tuo buffer in modo che non ci possano essere Buffer Overflows.
Spero di averti aiutato.
Ciao!![]()

Rispondi quotando