Projet : Définir la structure Contact
Fait partie de la section Logic & Flow du Journey C de Coddy — leçon 50 sur 63.
Défi
FacileVous allez construire un outil simple de saisie de contacts qui démontre comment les structures peuvent organiser des données liées dans des applications réelles.
Créez un programme C qui définit une structure Contact pour stocker des informations de contact. Votre programme doit :
- Définir une
structnomméeContactavec les membres suivants :- Un tableau de caractères
namede taille 50 pour stocker le nom du contact - Un tableau de caractères
phonede taille 20 pour stocker le numéro de téléphone du contact - Un tableau de caractères
emailde taille 40 pour stocker l'adresse e-mail du contact - Un entier
agepour stocker l'âge du contact
- Un tableau de caractères
- Dans la fonction main :
- Créer une variable
Contactnomméeperson - Lire les valeurs d'entrée suivantes et les affecter aux membres de la structure en utilisant l'opérateur point :
- Lire une chaîne pour le nom et l'affecter à
person.name - Lire une chaîne pour le numéro de téléphone et l'affecter à
person.phone - Lire une chaîne pour l'e-mail et l'affecter à
person.email - Lire un entier pour l'âge et l'affecter à
person.age
- Lire une chaîne pour le nom et l'affecter à
- Après avoir lu toutes les valeurs, effectuez les vérifications de validation suivantes :
- Si l'âge est inférieur à 0 ou supérieur à 120, affichez
Invalid ageet quittez le programme - Si la longueur du numéro de téléphone est inférieure à 10 caractères, affichez
Invalid phone numberet quittez le programme
- Si l'âge est inférieur à 0 ou supérieur à 120, affichez
- Si toutes les validations réussissent, affichez les informations de contact dans ce format exact :
Contact Information:Name: [name]Phone: [phone]Email: [email]Age: [age]
- Calculez et affichez des informations supplémentaires :
- Affichez la longueur du nom en utilisant
strlen()au format :Name length: [length] - Déterminez la catégorie d'âge et affichez-la :
- Si l'âge est compris entre 0 et 17 :
Category: Minor - Si l'âge est compris entre 18 et 64 :
Category: Adult - Si l'âge est de 65 ans ou plus :
Category: Senior
- Si l'âge est compris entre 0 et 17 :
- Affichez la longueur du nom en utilisant
- Créer une variable
Ce défi teste votre compréhension de la définition de structure, de la déclaration de membres avec les types de données et tailles appropriés, de l'accès aux membres de structure à l'aide de l'opérateur point, de la validation des entrées et de l'utilisation de fonctions de chaîne comme strlen() avec des membres de structure. Vous vous entraînerez à créer une structure de données pratique qui pourrait servir de base à un système de gestion de contacts.
Essayez vous-même
#include <stdio.h>
#include <string.h>
// TODO: Définir la structure Contact ici
int main() {
// TODO: Créer une variable Contact nommée person
// Lire les valeurs d'entrée
scanf("%s", /* TODO: assigner à person.name */);
scanf("%s", /* TODO: assigner à person.phone */);
scanf("%s", /* TODO: assigner à person.email */);
scanf("%d", /* TODO: assigner à person.age */);
// TODO: Écrire votre code de validation et de sortie ci-dessous
return 0;
}Toutes les leçons de Logic & Flow
1Les bases des pointeurs
Qu'est-ce qu'un pointeur ?Déclaration de pointeursL'opérateur d'adresse (&)L'opérateur de déréférencement (*)Pointeurs NULLRécapitulatif : Les bases des pointeurs4Projet : Utilitaire de texte simple
Présentation du projetCompter les caractères2Pointeurs et Tableaux
Noms de tableaux comme pointeursÉléments de tableau - PointeursArithmétique des pointeursComparaison de pointeursRécapitulatif : Parcours de tableau par pointeur5Pointeurs et fonctions
Passage par valeurPassage de pointeurs aux fonctionsModifier des variables via des pointeursUn exemple classique : SwapPassage de tableaux aux fonctionsRécapitulatif : Pointeurs comme arguments de fonction3Tableaux de caractères et chaînes
Les chaînes comme tableaux de charLe terminateur nulSaisie de chaînes avec scanfUtilisation de strlen()Utilisation de strcpy()Utilisation de strcat()Utilisation de strcmp()Récapitulatif : Fonctions de base sur les chaînes6Gestion de la mémoire
Mémoire Pile vs TasAllocation dynamique - malloc()Utiliser sizeof() pour l'allocationVérifier l'échec de l'allocationLibérer la mémoire avec free()Allouer avec calloc()Récapitulatif : Tableaux dynamiques9Projet : Saisie de contact simple
Projet : Définir la structure ContactFonction pour créer un contact