Manejo de Estructuras
Estructura Básico con ejemplo con una estructura Libro
#include <iostream>
#include <stdlib.h>
#include <conio.h>
typedef struct Libros
{
char clave[15];
char titulo[30];
char autor[30];
char categoria[20];
} Libro;
void guardaLibro();
void imprimeLibro(Libro tmpLibro);
int main()
{
Libro miPrimerLibro;
miPrimerLibro = guardaLibro();
imprimeLibro(miPrimerLibro);
getchar(); getchar();
return 0;
}
Libro guardaLibro()
{
Libro tmpLibro;
printf("Dame la clave del Libro: ");
gets(tmpLibro.clave);
printf("Dame el nombre del Libro: ");
gets(tmpLibro.titulo);
printf("Dame el autor del Libro: ");
gets(tmpLibro.autor);
printf("Dame el categoria del Libro: ");
gets(tmpLibro.categoria);
return tmpLibro;
}
void imprimeLibro(Libro tmpLibro)
{
printf("Clave del Libro: %s", tmpLibro.clave);
printf("\nnombre del Libro: %s", tmpLibro.titulo);
printf("\nautor del Libro: %s", tmpLibro.autor);
printf("\ncategoria del Libro: %s", tmpLibro.categoria);
}
Ejemplo de una Estructura utilizando punteros
#include <iostream>
#include <stdlib.h>
#include <conio.h>
typedef struct Libros
{
char clave[15];
char titulo[30];
char autor[30];
char categoria[20];
} Libro;
int main()
{
Libro *punteroLibro, libro;
punteroLibro = &libro;
gets(punteroLibro->clave);
printf("Dame el nombre del Libro: ");
gets(punteroLibro->titulo);
printf("Dame el autor del Libro: ");
gets(punteroLibro->autor);
printf("Dame el categoria del Libro: ");
gets(punteroLibro->categoria);
printf("Clave del Libro: %s", punteroLibro->clave);
printf("\nnombre del Libro: %s", punteroLibro->titulo);
printf("\nautor del Libro: %s", punteroLibro->autor);
printf("\ncategoria del Libro: %s", punteroLibro->categoria);
return 0;
}
Ejemplo de una Estructura utilizando punteros con Memoria Dinámica
#include <iostream>
#include <stdlib.h>
#include <conio.h>
typedef struct Libros
{
char clave[15];
char titulo[30];
char autor[30];
char categoria[20];
} Libro;
void guardarLibros(Libro *tmpLibros, int n);
int main()
{
Libro *punteroLibro;
int totalLibros;
printf("Proporcione el numero de libros que desea guardar: ");
scanf("%d", &totalLibros);
punteroLibro = (Libro *) malloc(sizeof(Libro)*totalLibros);
guardarLibros(punteroLibro, totalLibros);
return 0;
}
void guardarLibros(Libro *tmpLibros, int n)
{
int i=0;
for(i=0; i<n; i++)
{
printf("Guardando Libro: %d", i);
printf("\nDame la clave del Libro: ");
gets(tmpLibros[i].clave);
printf("Dame el nombre del Libro: ");
gets(tmpLibros[i].titulo);
printf("Dame el autor del Libro: ");
gets(tmpLibros[i].autor);
printf("Dame el categoria del Libro: ");
gets(tmpLibros[i].categoria);
}
}