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++; }
}
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
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:
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".
Siiii el despiste ;D voy a checar tu opción, sera una nueva forma para programar y hacer muchas cosas. >:D