Problema para guardar cadenas

Iniciado por psycho248, 19 Enero 2014, 02:45 AM

0 Miembros y 1 Visitante están viendo este tema.

psycho248

Hola esta es mi segunda consulta. Después de buscar y rebuscar en mi código no le hallo solución.
Al guardar el segundo nombre automáticamente se almacena en lista[cant] sin necesidad de completar el bucle.   :-[ :-[   :-[   Ayuda por favor.......

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdbool.h>
int main()
{
int i,cant,j,cont;
char *lista[10];
char *aux[10];
char* nombre;
bool se_repite;

printf("Ingrese los nombres\n");
nombre=(char*)malloc(10);
cant=0;
gets(nombre);

  cont=1;
  while(cont<=2)
  {
     cant++;
     lista[cant]=nombre;
       do
       {
         gets(nombre);  //Aqui     al guardar el segundo nombre se encima con lista[cant]
         se_repite=false;
          for (i=1; i<=cant; i++)
          {
           if(strcmp(lista[cant],nombre)==0)
           {
             se_repite=true;
           }
          }
       }while(se_repite=false);
cont++;   }
}

psycho248

Ok Ahora me respondo yo mismo  :silbar: me faltó poner

nombre=(char*)malloc(10);  //Antes del segundo gets();
gets(nombre);



:rolleyes: :rolleyes: Pero pues por aquí lo dejo. Espero que a alguien le sirva.  :P

amchacon

La mayoría de los errores "extraños" que tengas van a ser por depistes, te lo digo yo ;-)

Por cierto en vez de gets se recomienda fgets, la razón es porque puedes limitar el número de caracteres leídos:
Código (cpp) [Seleccionar]
fgets(nombre,10,stdin); // Leer HASTA 10 caracteres del teclado
http://www.cplusplus.com/reference/cstdio/fgets/

Si no lo limitas, leerías todo y si son más de los 10 caracteres la puedes liar. En el mejor de los casos el SO te abortará el progama, en el peor de los casos sobreescribirás otras variables, con lo que te encontrarás "problemas extraños".
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

psycho248

Siiii el despiste  ;D voy a checar tu opción, sera una nueva forma para programar y hacer muchas cosas.  >:D