#Solucion del postBueno, estaba practicando con listas enlazadas en C, pero no se porque no me va esto
El caso es que no me deja ingresar bien los datos, ¿uso mal
fgets()?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct _contacto {
char nombre[33];
char telefono[13];
struct _contacto *siguiente;
};
struct _contacto *primero, *ultimo;
void agregar_contacto()
{
struct _contacto *nuevo;
nuevo
= (struct _contacto
*)malloc(sizeof(struct _contacto
)); if(nuevo==NULL){
printf("\nNo hay espacio suficiente."); return;
}
printf("\n\nAgregar contacto\n"); fgets(nuevo
->nombre
,32,stdin
); fgets(nuevo
->telefono
,12,stdin
); nuevo->siguiente = NULL;
if(primero==NULL){
primero = nuevo;
ultimo = nuevo;
} else {
ultimo->siguiente = nuevo;
ultimo = nuevo;
}
}
void buscar_contacto_tlfn()
{
struct _contacto *busqueda, *actual;
busqueda
= (struct _contacto
*)malloc(sizeof(struct _contacto
)); if(busqueda==NULL){
printf("\nNo hay espacio suficiente."); return ;
}
printf("\n\nBuscar contacto por telefono\n"); printf("----------------------------"); fgets(busqueda
->telefono
,12,stdin
); actual = primero;
while(actual!=NULL){
if(strcmp(actual
->telefono
,busqueda
->telefono
)==0){ printf("+Nombre: %s\n", actual
->nombre
); return;
}
actual = actual->siguiente;
}
}
int opcion = 0;
void mostrar_menu()
{
opcion = 0;
printf("1. Agregar contacto\n"); printf("2. Buscar contacto por telefono\n"); }
int main()
{
while(opcion!=3){
mostrar_menu();
switch(opcion)
{
case 1:
agregar_contacto();
break;
case 2:
buscar_contacto_tlfn();
break;
default:
break;
}
}
return 0;
}
Saludos!