Projet : Définir la structure Contact
Fait partie de la section Logique & Flux du Journey C de Coddy. Leçon 50 sur 63.
Défi
FacileVous allez créer un outil simple de saisie de contacts qui montre comment les structures peuvent organiser des données connexes dans des applications réelles.
Créez un programme C qui définit une structure Contact pour stocker les informations d’un contact. Votre programme doit :
- Définir une structure
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 à l’aide de 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’adresse 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, effectuer les vérifications suivantes :
- Si l’âge est inférieur à 0 ou supérieur à 120, afficher
Invalid ageet quitter le programme - Si la longueur du numéro de téléphone est inférieure à 10 caractères, afficher
Invalid phone numberet quitter le programme
- Si l’âge est inférieur à 0 ou supérieur à 120, afficher
- Si toutes les vérifications réussissent, afficher les informations du contact dans ce format exact :
Contact Information:Name: [name]Phone: [phone]Email: [email]Age: [age]
- Calculer et afficher des informations supplémentaires :
- Afficher la longueur du nom à l’aide de
strlen()au format suivant :Name length: [length] - Déterminer la catégorie d’âge et l’afficher :
- 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 supérieur ou égal à 65 :
Category: Senior
- Si l’âge est compris entre 0 et 17 :
- Afficher la longueur du nom à l’aide de
- Créer une variable
Ce défi teste votre compréhension de la définition d’une structure, de la déclaration de membres avec des types de données et des tailles appropriés, de l’accès aux membres d’une 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 les membres d’une 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 Logique & Flux
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 contactEntraînez-vous par vous-même : Compilateur C en ligne