Pues ha surgido una pequeña duda haciendo la comparativa con gets y fgets.
Aquí el código:
![](http://i59.tinypic.com/20u6g4l.jpg)
Si nos fijamos con fgets da una longitut de la cadena de 13. En cambio con gets da 12.
¿Es posible que con al hacer strlen con fgets cuente también el carácter final de linea \0 ? O dicho de otra manera gets no cuenta el carácter de final de linea.
Aquí el código:
Código [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int main()
{
char cadena1[256];
char cadena2[256];
printf("Funcio gets i fgets.\n\n");
printf("Introdueix la frase: \n-> ");
fgets(cadena1,256,stdin);
printf("\nLONGITUD: %d",strlen(cadena1));
printf("\nFRASE: %s",cadena1);
printf("\n\n\nIntrodueix la frase: \n-> ");
gets(cadena2);
printf("\nLONGITUD: %d",strlen(cadena2));
printf("\nFRASE: %s\n",cadena2);
return 0;
}
![](http://i59.tinypic.com/20u6g4l.jpg)
Si nos fijamos con fgets da una longitut de la cadena de 13. En cambio con gets da 12.
¿Es posible que con al hacer strlen con fgets cuente también el carácter final de linea \0 ? O dicho de otra manera gets no cuenta el carácter de final de linea.