Puoi usare all'interno della scanf il modificatore per indicare la lunghezza massima (vedi http://www.cplusplus.com/reference/c.../cstdio/scanf/).
Oppure con la fgets (vedi http://www.cplusplus.com/reference/c.../cstdio/fgets/) indicando la lunghezza massima del buffer.
Ma tutto questo limita l'inserimento nel buffer, non puoi sapere se l'utente ha scritto più del massimo consentito a meno che tu non costruisca una tua funzione che accetta carattere dopo carattere e controlla la massima lunghezza.