Menu
CoddyTech

Acessando Membros de uma Struct

Parte da seção Lógica e Fluxo do Journey de C da Coddy. Lição 41 de 63.

Agora que você sabe criar variáveis de struct, precisa aprender a trabalhar com os dados armazenados nelas. O operador ponto (.) é a chave para acessar e modificar os membros individuais de uma variável de struct.

A sintaxe para acessar os membros da struct é simples:

structVariable.memberName

Usando nosso exemplo da struct Point, você pode ler e gravar em seus membros:

struct Point p1;

// Escrevendo nos membros da struct
p1.x = 10;
p1.y = 20;

// Lendo os membros da struct
printf("Point coordinates: (%d, %d)\n", p1.x, p1.y);

O operador de ponto funciona exatamente como o acesso a qualquer outra variável: você pode usá-lo em atribuições, operações aritméticas, chamadas de função ou em qualquer lugar em que usaria uma variável comum desse tipo. Cada membro se comporta como uma variável independente do tipo declarado, permitindo que você manipule os dados da struct de maneira organizada e intuitiva.

challenge icon

Desafio

Fácil

Crie um programa em C que demonstre como acessar e modificar membros de uma estrutura usando o operador ponto. Seu programa deve:

  1. Definir uma struct chamada Car com os seguintes membros:
    • Um inteiro year para armazenar o ano de fabricação
    • Um array de caracteres brand com tamanho 20 para armazenar a marca do carro
    • Um inteiro mileage para armazenar a quilometragem atual
    • Um número de ponto flutuante price para armazenar o preço do carro
  2. Criar uma variável Car chamada myCar
  3. Ler os seguintes valores de entrada e atribuí-los aos membros da estrutura usando o operador ponto:
    • Ler um inteiro para o ano e atribuí-lo a myCar.year
    • Ler uma string para a marca e copiá-la para myCar.brand com strcpy() (um array não pode ser atribuído com =)
    • Ler um inteiro para a quilometragem e atribuí-lo a myCar.mileage
    • Ler um número de ponto flutuante para o preço e atribuí-lo a myCar.price
  4. Depois de ler todos os valores, realizar as seguintes operações:
    • Aumentar a quilometragem em 1000 usando myCar.mileage += 1000;
    • Diminuir o preço em 500.0 usando myCar.price -= 500.0;
  5. Imprimir as informações do carro usando o operador ponto para acessar cada membro neste formato exato:
    • Car Details:
    • Year: [year]
    • Brand: [brand]
    • Mileage: [mileage]
    • Price: [price]

Este desafio testa sua compreensão do operador ponto para ler e escrever nos membros de uma estrutura. Você praticará a atribuição de valores aos membros da estrutura, a realização de operações aritméticas com eles e o acesso a eles para exibição.

Por exemplo, se a entrada for:

2020
Toyota
50000
25000.50

Sua saída deve ser:

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

Experimente você mesmo

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

// TODO: Defina a struct Car aqui

int main() {
    // TODO: Crie uma variável do tipo Car chamada myCar
    
    // Leia os valores de entrada
    int year;
    char brand[20];
    int mileage;
    float price;
    
    scanf("%d", &year);
    scanf("%s", brand);
    scanf("%d", &mileage);
    scanf("%f", &price);
    
    // TODO: Atribua os valores de entrada aos membros da struct usando o operador de ponto
    
    // TODO: Modifique a quilometragem e o preço conforme especificado
    
    // TODO: Exiba os detalhes do carro usando o operador de ponto
    printf("Car Details:\n");
    // Exiba Year, Brand, Mileage e Price aqui
    
    return 0;
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo

Pratique por conta própria: Compilador de C online