Crear directorio telefónico para mi trabajo de carrera

Soy estudiante de 1º año y tengo un problema que no se que hacer:
Tengo que crear un directorio telefónico para por personas en el cual yo tengo que ingresar el nombre y el programa me tiene que imprimir los datos de esa persona.
Bueno e hecho una estructura para los campos que necesite, el problema es que no se como entrar a un nombre dentro de la estructura por ejemplo
Si el nombre David esta dentro de la estructura como hago para que me imprima solo los datos de David aunque hayan muchos otros dentro de la estructura.
Te agradecería si me pudieras dar una orientación o algún ejemplo.

3 respuestas

Respuesta
1
//suponiendto una estructura:
struct dirtel {
char nombre[40];
char telefono[20];
char direccion[40];
//... etc.
};
//el acceso al nombre es:
dirtel pers;
gets( pers.nombre);
printf( "Nombre: %s", pers.nombre);
Respuesta
1
Para hacer referencia a un campo de la estructura, se usa el operador punto (.).
Por ejemplo, si tenemos una variable llamada "persona" de tipo estructura, con tres campos, "nombre", "edad" y "telefono" y queremos acceder al campo "edad", usaremos "persona.edad".
Ejemplo:
struct telefonos
{
char nombre[30];
int edad;
int tfno;
};
main()
{
struct telefonos persona;
printf("Introduzca los datos:");
printf("Nombre:");
gets(persona.nombre);
printf("Edad:");
scanf("%d", &(persona.edad));
printf("Telefono:");
scanf("%d", &(persona.tfno));
printf("Edad: %d Telefono: %d",persona.edad, persona.tfno);
}
No sé si habré resuelto tu duda. Si lo que quieres es una guía telefónica, deberás trabajar con un vector de estructuras o con una lista enlazada, creo yo.
Respuesta
1
Me parece que tienes un poco confundido el concepto de estructura, lo que necesitarías para trabajar en memoria es una lista, donde cada nodo sea un registro y cada registro contenga los distintos campos más o menos así: (no te fíes de la sintaxis, controlala vos)
struct{
Ps, pa registro;//donde ps y pa son los punteros que indican la direccion de memoria del nodo anterior y siguiente
int indice;
char[50] nombre;
char [20] telefono;
}registro;
declaras con el operador new cada ves que quieras crear un nuevo registro haciendo:
new nodo=registro; (o algo parecido fijate en la ayuda)
Luego cargas el nodo de la forma strcpy(registro-> nombre, name)
O bien strcpy(registro. Nombre, name)// donde name es la variable o control donde has almacenado el nombre correspondiente y de forma similar para los siguientes campos del nodo.
Si me das unos días te armo un pequeño ejemplo de manejo de listas en código fuente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas