Pongo un ejemplo:
Tengo:
printf("Ingrese el largo de su frase: ");
scanf("%d",&largo);
Pero luego cuando voy a ingresar la frase:
printf("Ingrese su frase: ");
for (int i = 0; i < largo; i++)
scanf("%c", &cadena[i]);
Me lee los caracteres de la frase -1
Si ingreso que la frase tiene 6 caracteres, y luego ingreso la frase "narran", en el arreglo se guarda "narra"
Espero no sea muy confuso y si lo es veo de reformular la pregunta de otra manera, gracias