Menu
Coddy logo textTech

Projeto: Definir a Struct de Contato

Parte da seção Logic & Flow do Journey de C da Coddy — lição 50 de 63.

challenge icon

Desafio

Fácil

Você construirá uma ferramenta simples de entrada de contatos que demonstra como as structs podem organizar dados relacionados em aplicações do mundo real.

Crie um programa em C que defina uma struct Contact para armazenar informações de contato. Seu programa deve:

  1. Definir uma struct chamada Contact com os seguintes membros:
    • Um array de caracteres name com tamanho 50 para armazenar o nome do contato
    • Um array de caracteres phone com tamanho 20 para armazenar o número de telefone do contato
    • Um array de caracteres email com tamanho 40 para armazenar o endereço de e-mail do contato
    • Um inteiro age para armazenar a idade do contato
  2. Na função main:
    • Criar uma variável Contact chamada person
    • Ler os seguintes valores de entrada e atribuí-los aos membros da struct usando o operador ponto:
      • Ler uma string para o nome e atribuí-la a person.name
      • Ler uma string para o número de telefone e atribuí-la a person.phone
      • Ler uma string para o e-mail e atribuí-la a person.email
      • Ler um inteiro para a idade e atribuí-lo a person.age
    • Após ler todos os valores, realizar as seguintes verificações de validação:
      • Se a idade for menor que 0 ou maior que 120, imprimir Invalid age e encerrar o programa
      • Se o comprimento do número de telefone for menor que 10 caracteres, imprimir Invalid phone number e encerrar o programa
    • Se todas as validações passarem, imprimir as informações de contato neste formato exato:
      • Contact Information:
      • Name: [name]
      • Phone: [phone]
      • Email: [email]
      • Age: [age]
    • Calcular e imprimir informações adicionais:
      • Imprimir o comprimento do nome usando strlen() no formato: Name length: [length]
      • Determinar a categoria de idade e imprimi-la:
        • Se a idade estiver entre 0 e 17: Category: Minor
        • Se a idade estiver entre 18 e 64: Category: Adult
        • Se a idade for 65 ou superior: Category: Senior

Este desafio testa sua compreensão da definição de struct, declaração de membros com tipos de dados e tamanhos apropriados, acesso a membros de struct usando o operador ponto, validação de entrada e uso de funções de string como strlen() com membros de struct. Você praticará a criação de uma estrutura de dados prática que poderia servir como base para um sistema de gerenciamento de contatos.

Experimente você mesmo

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

// TODO: Defina a struct Contact aqui

int main() {
    // TODO: Crie uma variável Contact chamada person
    
    // Ler valores de entrada
    scanf("%s", /* TODO: atribuir a person.name */);
    scanf("%s", /* TODO: atribuir a person.phone */);
    scanf("%s", /* TODO: atribuir a person.email */);
    scanf("%d", /* TODO: atribuir a person.age */);
    
    // TODO: Escreva seu código de validação e saída abaixo
    
    return 0;
}

Todas as lições de Logic & Flow