Menu
Coddy logo textTech

Accéder aux membres d'une Struct

Fait partie de la section Logic & Flow du Journey C de Coddy — leçon 41 sur 63.

Maintenant que vous pouvez créer des variables de type struct, vous devez apprendre à travailler avec les données stockées à l'intérieur de celles-ci. L'opérateur point (.) est votre clé pour accéder aux membres individuels d'une variable struct et les modifier.

La syntaxe pour accéder aux membres d'une structure est simple :

structVariable.memberName

En utilisant notre exemple de structure Point, vous pouvez à la fois lire ses membres et y écrire :

struct Point p1;

// Écriture dans les membres de la structure
p1.x = 10;
p1.y = 20;

// Lecture des membres de la structure
printf("Point coordinates: (%d, %d)\n", p1.x, p1.y);

L'opérateur point fonctionne exactement comme l'accès à n'importe quelle autre variable - vous pouvez l'utiliser dans des affectations, des opérations arithmétiques, des appels de fonction ou partout où vous utiliseriez une variable ordinaire de ce type. Chaque membre se comporte comme une variable indépendante de son type déclaré, vous permettant de manipuler les données de la structure de manière organisée et intuitive.

challenge icon

Défi

Facile

Créez un programme C qui démontre l'accès et la modification des membres d'une structure à l'aide de l'opérateur point. Votre programme doit :

  1. Définir une struct nommée Car avec les membres suivants :
    • Un entier year pour stocker l'année de fabrication
    • Un tableau de caractères brand de taille 20 pour stocker la marque de la voiture
    • Un entier mileage pour stocker le kilométrage actuel
    • Un flottant price pour stocker le prix de la voiture
  2. Créer une variable Car nommée myCar
  3. Lire les valeurs d'entrée suivantes et les affecter aux membres de la structure à l'aide de l'opérateur point :
    • Lire un entier pour l'année et l'affecter à myCar.year
    • Lire une chaîne de caractères pour la marque et l'affecter à myCar.brand
    • Lire un entier pour le kilométrage et l'affecter à myCar.mileage
    • Lire un flottant pour le prix et l'affecter à myCar.price
  4. Après avoir lu toutes les valeurs, effectuer les opérations suivantes :
    • Augmenter le kilométrage de 1000 en utilisant myCar.mileage += 1000;
    • Diminuer le prix de 500.0 en utilisant myCar.price -= 500.0;
  5. Afficher les informations de la voiture en utilisant l'opérateur point pour accéder à chaque membre dans ce format exact :
    • Car Details:
    • Year: [year]
    • Brand: [brand]
    • Mileage: [mileage]
    • Price: [price]

Ce défi teste votre compréhension de l'opérateur point pour la lecture et l'écriture dans les membres d'une structure. Vous vous entraînerez à affecter des valeurs aux membres d'une structure, à effectuer des opérations arithmétiques sur ceux-ci et à y accéder pour l'affichage.

Par exemple, si l'entrée est :

2020
Toyota
50000
25000.50

Votre sortie devrait être :

Car Details:
Year: 2020
Brand: Toyota
Mileage: 51000
Price: 24500.50

Aide-mémoire

L'opérateur point (.) est utilisé pour accéder aux membres individuels d'une variable struct et les modifier.

Syntaxe pour accéder aux membres d'une structure :

structVariable.memberName

Exemple de lecture et d'écriture dans les membres d'une structure :

struct Point p1;

// Écriture dans les membres de la structure
p1.x = 10;
p1.y = 20;

// Lecture des membres de la structure
printf("Point coordinates: (%d, %d)\n", p1.x, p1.y);

L'opérateur point peut être utilisé dans des affectations, des opérations arithmétiques, des appels de fonction ou partout où vous utiliseriez une variable ordinaire de ce type. Chaque membre se comporte comme une variable indépendante de son type déclaré.

Essayez vous-même

#include <stdio.h>
#include <string.h>

// TODO: Définir la structure Car ici

int main() {
    // TODO: Créer une variable Car nommée myCar
    
    // Lire les valeurs d'entrée
    int year;
    char brand[20];
    int mileage;
    float price;
    
    scanf("%d", &year);
    scanf("%s", brand);
    scanf("%d", &mileage);
    scanf("%f", &price);
    
    // TODO: Assigner les valeurs d'entrée aux membres de la structure en utilisant l'opérateur point
    
    // TODO: Modifier le kilométrage et le prix comme spécifié
    
    // TODO: Afficher les détails de la voiture en utilisant l'opérateur point
    printf("Car Details:\n");
    // Afficher l'année (Year), la marque (Brand), le kilométrage (Mileage) et le prix (Price) ici
    
    return 0;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logic & Flow