Imaginemos que tenemos un un array como:
char cadena[10];
Entonces usamos la función fgets para leer una cadena de caracteres como:
fgets(cadena, 10, stdin);
E introducimos menos de 9 caracteres por lo que automáticamente se nos pone un '\n' al final del array, en la posición cadena[9] en el ejemplo.
Entonces si usamos:
if(cadena[strlen(cadena)-1] == '\n'{
cadena[strlen(cadena)-1] = '\0'
}
obtenemos la cadena sin la impresión de una nueva línea (es decir que el cursor se situa justo después del último caracter.
Lo que no entiendo de todo es es que si introducimos por ejemplo HOLA el array quedaría como:
H O L A \0 _ _ _ _ \n
y al usar la anterior instrucción para quitar el '\n' tendríamos:
H O L A \0 _ _ _ _ \0
¿Cómo es posible tener dos '\0'?
Muchas gracias.