Ver Mensaje Individual
  #21 (permalink)  
Antiguo 20/02/2014, 02:31
Avatar de guzzano
guzzano
 
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 13
Respuesta: como sustituir la funcion fgets y gets en c

Si te referías a eso, la cuestión no estaba, si tu línea tenía un salto de línea o no. Es cuestión como te dije arriba, que tus variables devuelven siempre 0. Mira tus líneas 56 y 74. Que tengas una variable definida en main y otra en tu función con el mismo nombre, no quiere decir que cambiará la de main. Claramente puedes, pero ya seria con el uso de punteros.

El código de arriba, la estructura creada, no sé que hace ahí, es patética y inservible. Puedes hacerlo con una simple variable. Aquí te adjunto una explicación.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int
  5. main (void)
  6. {
  7.   char str[256];
  8.   char *strp;
  9.  
  10.   fgets(str, sizeof str, stdin);
  11.  
  12.   /* La función strchr, busca la
  13.    * primera aparición cáracter
  14.    * que se le pasó. En tu caso,
  15.    * pasaste 10, que seria \n
  16.    * según la tabla ASCII.
  17.    *
  18.    * Esta función, devolverá un
  19.    * puntero, que tendrá la
  20.    * dirección donde se encontró.
  21.    * Si no se encontró, devolverá
  22.    * un valor NULO.
  23.   */
  24.  
  25.   if (strp = strchr(str, '\n'))
  26.     *strp = '\0';
  27.  
  28.   /* Esta condición, mira si el
  29.    * resultado no es NULO, y
  30.    * con al asterisco accederemos
  31.    * a la dirección y cambiaremos
  32.    * su valor a un \0, que es un
  33.    * fin de la cadena.
  34.   */
  35.  
  36.   puts(str);
  37.  
  38.   return 0;
  39. }

Saludos.
__________________
Si me equivoco, corríjanme sin piedad.