Hola gente.
fgets( word[i], MAX_COL , stdin );
if((p=strchr(word[i], '\n'))){
*p='\0';
}
else{
while((ch = getchar()) !='\n' && ch!=EOF);
word[i][MAX_COL] = '\0';
}
En este trozo de código está mi gran duda, según lo que tengo leído es que si ingreso menos caracteres que MAX_COL fgets los guarda desde el buffer de teclado en la variable indicada, en este caso word y también el carácter de nueva línea (\n) que se produce al apretar < Enter >, la primera duda, ¿es estrictamente necesario remplazar el carácter \n por \0? -
En el caso de ingresar más caracteres del establecido por MAX_COL fgets lee MAX_COL – 1 y en la última casilla de memoria asignada a MAX_COL copia el carácter \n, de ser esto cierto la otra duda es: ¿la sentencia else no se ejecuta nunca en este caso, o estoy equivocado?
Desde ya muchas gracias por el tiempo que le dediquen al tema,-
Saludos.
Daniel