Estructuras en C: Cómo Almacenar y Recorrer Datos con struct en Lenguaje C
1. Almacenar información de una variable de estructura de 3 formas
En el siguiente código se muestran tres formas de almacenar y manipular información mediante una variable de estructura (struct) en lenguaje C.
Código de ejemplo
#include <conio.h>
#include <stdio.h>
#include <Windows.h>
#include <string.h>
main() {
struct datos {
char nombre[50];
int edad;
float altura;
float peso;
} persona;
strcpy(persona.nombre, "Roberto");
persona.edad = 18;
persona.altura = 1.65;
persona.peso = 62.2;
printf("\nnombre: %s", persona.nombre);
printf("\nedad: %d", persona.edad);
printf("\naltura: %.2f", persona.altura);
printf("\npeso: %.2f", persona.peso);
printf("\n\n");
system("pause");
struct inf {
char nombre[40];
int edad;
char genero;
char categoria[25];
char club[30];
float tiempo;
} corredor;
printf("\nNombre: ");
scanf(" %[^\n]", corredor.nombre);
printf("\nedad: ");
fflush(stdin);
scanf("%d", &corredor.edad);
printf("\ngenero: ");
scanf("%c", &corredor.genero);
printf("\ncategoria: ");
scanf("%c", &corredor.categoria);
printf("\nclub: ");
scanf(" %[^\n]", corredor.club);
printf("\ntiempo: ");
scanf("%f", &corredor.tiempo);
printf("\nnombre: %s", corredor.nombre);
printf("\nedad: %d", corredor.edad);
printf("\n\nsoy gay");
printf("\n\n");
system("pause");
}
14. Definir un arreglo de variable de estructura e inicializar las primeras 3 posiciones
En este ejemplo se define un arreglo de estructuras con capacidad para 10 alumnos, inicializando las primeras posiciones con sus datos y recorriendo el arreglo con un ciclo for.
main() {
int i = 0;
struct datos {
int mat;
char nombre[30];
float colegiatura;
} alumno[10] = {
{456, "giovanni cabrera", 1200},
{123, "cesar lozano", 1300},
{789, "ramon garcia", 1400},
{321, "diana muñoz", 2500},
{987, "mauricio antonio", 1100},
};
for (i = 0; i < 5; i++) {
printf("\nMatricula= %d", alumno[i].mat);
printf("\nNombre= %s", alumno[i].nombre);
printf("\nColegiatura= %f", alumno[i].colegiatura);
}
printf("\n\n");
system("pause");
}