Como limitar a função scanf em C para imprimir erro quando a entrada é muito longa?

Eu quero limitar a função scanf assim quando eu entrar, por exemplo, umchar* array <String...> que tem mais de 30 caracteres, não vai conseguir e minha saída será erro.

Eu tenho uma dica para usar [^ n] ou algo assim, mas eu não entendo como fazer isso? Eu sei que eu posso usarscanf("%30s"..) mas eu não quero que a entrada seja válida e apenas o erro.

Qualquer ajuda seria ótimo.

questionAnswers(5)

yourAnswerToTheQuestion