Oui, c´est vrai que c´est peu connu certaines options du scanf, mais c´est bien marrant
Ce que tu peux aussi, c´est protéger les débordements :
scanf("%500s",p);
--> si par exemple tu as réservé 501 char pour ton tableau, ça sécurise (le 501è étant pour le \0)
Evidemment combinable avec [^\n] 