Proyecto: Definir la estructura Contact
Parte de la sección Lógica y Flujo del Journey de C de Coddy. Lección 50 de 63.
Desafío
FácilCrearás una herramienta sencilla de registro de contactos que demuestra cómo las estructuras pueden organizar datos relacionados en aplicaciones del mundo real.
Crea un programa en C que defina una estructura Contact para almacenar información de contacto. Tu programa debe:
- Definir una
structllamadaContactcon los siguientes miembros:- Un arreglo de caracteres
namecon tamaño 50 para almacenar el nombre del contacto - Un arreglo de caracteres
phonecon tamaño 20 para almacenar el número de teléfono del contacto - Un arreglo de caracteres
emailcon tamaño 40 para almacenar la dirección de correo electrónico del contacto - Un entero
agepara almacenar la edad del contacto
- Un arreglo de caracteres
- En la función main:
- Crear una variable
Contactllamadaperson - Leer los siguientes valores de entrada y asignarlos a los miembros de la estructura mediante el operador punto:
- Leer una cadena para el nombre y asignarla a
person.name - Leer una cadena para el número de teléfono y asignarla a
person.phone - Leer una cadena para el correo electrónico y asignarla a
person.email - Leer un entero para la edad y asignarlo a
person.age
- Leer una cadena para el nombre y asignarla a
- Después de leer todos los valores, realiza las siguientes comprobaciones de validación:
- Si la edad es menor que 0 o mayor que 120, imprime
Invalid agey termina el programa - Si la longitud del número de teléfono es menor que 10 caracteres, imprime
Invalid phone numbery termina el programa
- Si la edad es menor que 0 o mayor que 120, imprime
- Si todas las validaciones se superan, imprime la información del contacto con este formato exacto:
Contact Information:Name: [name]Phone: [phone]Email: [email]Age: [age]
- Calcula e imprime información adicional:
- Imprime la longitud del nombre usando
strlen()con el formato:Name length: [length] - Determina la categoría de edad e imprímela:
- Si la edad está entre 0 y 17:
Category: Minor - Si la edad está entre 18 y 64:
Category: Adult - Si la edad es 65 o mayor:
Category: Senior
- Si la edad está entre 0 y 17:
- Imprime la longitud del nombre usando
- Crear una variable
Este desafío evalúa tu comprensión de la definición de estructuras, la declaración de miembros con tipos de datos y tamaños adecuados, el acceso a los miembros de una estructura mediante el operador punto, la validación de entradas y el uso de funciones de cadenas como strlen() con miembros de estructuras. Practicarás la creación de una estructura de datos práctica que podría servir como base para un sistema de gestión de contactos.
Pruébalo tú mismo
#include <stdio.h>
#include <string.h>
// TODO: Define la estructura Contact aquí
int main() {
// TODO: Crea una variable Contact llamada person
// Leer valores de entrada
scanf("%s", /* TODO: asignar a person.name */);
scanf("%s", /* TODO: asignar a person.phone */);
scanf("%s", /* TODO: asignar a person.email */);
scanf("%d", /* TODO: asignar a person.age */);
// TODO: Escribe tu código de validación y salida a continuación
return 0;
}Todas las lecciones de Lógica y Flujo
1Fundamentos de Punteros
¿Qué es un puntero?Declaración de punterosEl operador de dirección (&)El operador de desreferencia (*)Punteros NULLResumen: Conceptos básicos de punteros4Proyecto: Utilidad de texto simple
Descripción general del proyectoContar caracteres2Punteros y Arrays
Nombres de Arrays como PunterosElementos de un Array - PunterosAritmética de PunterosComparación de PunterosResumen: Recorrido de Arrays con Punteros5Punteros y funciones
Paso por valorPasar punteros a funcionesModificar variables mediante punterosUn ejemplo clásico: Intercambio (Swap)Pasar arrays a funcionesResumen: Argumentos de punteros a funciones3Arreglos de caracteres y cadenas
Cadenas como arreglos de charEl terminador nuloEntrada de cadenas con scanfUso de strlen()Uso de strcpy()Uso de strcat()Uso de strcmp()Resumen: Funciones básicas de cadenas6Gestión de memoria
Memoria Stack vs. HeapAsignación dinámica - malloc()Uso de sizeof() para la asignaciónComprobación de fallos de asignaciónLiberación de memoria con free()Asignación con calloc()Resumen: Arrays dinámicos9Proyecto: Registro de contacto simple
Proyecto: Definir la estructura ContactFunción para crear un contactoPractica por tu cuenta: Compilador de C online