Menu
Coddy logo textTech

Progetto: Definire una struct Contatto

Fa parte della sezione Logica e flusso del percorso C di Coddy. Lezione 50 di 63.

challenge icon

Sfida

Facile

Costruirai un semplice strumento per inserire contatti che dimostra come le struct possano organizzare dati correlati in applicazioni reali.

Crea un programma C che definisca una struct Contact per memorizzare le informazioni di un contatto. Il programma dovrà:

  1. Definire una struct denominata Contact con i seguenti membri:
    • Un array di caratteri name di dimensione 50 per memorizzare il nome del contatto
    • Un array di caratteri phone di dimensione 20 per memorizzare il numero di telefono del contatto
    • Un array di caratteri email di dimensione 40 per memorizzare l'indirizzo email del contatto
    • Un intero age per memorizzare l'età del contatto
  2. Nella funzione principale:
    • Creare una variabile Contact denominata person
    • Leggere i seguenti valori di input e assegnarli ai membri della struct usando l'operatore punto:
      • Leggere una stringa per il nome e assegnarla a person.name
      • Leggere una stringa per il numero di telefono e assegnarla a person.phone
      • Leggere una stringa per l'email e assegnarla a person.email
      • Leggere un intero per l'età e assegnarlo a person.age
    • Dopo aver letto tutti i valori, eseguire i seguenti controlli di convalida:
      • Se l'età è minore di 0 o maggiore di 120, stampare Invalid age e terminare il programma
      • Se la lunghezza del numero di telefono è inferiore a 10 caratteri, stampare Invalid phone number e terminare il programma
    • Se tutti i controlli di convalida vengono superati, stampare le informazioni del contatto in questo formato esatto:
      • Contact Information:
      • Name: [name]
      • Phone: [phone]
      • Email: [email]
      • Age: [age]
    • Calcolare e stampare informazioni aggiuntive:
      • Stampare la lunghezza del nome usando strlen() nel formato: Name length: [length]
      • Determinare la categoria di età e stamparla:
        • Se l'età è compresa tra 0 e 17: Category: Minor
        • Se l'età è compresa tra 18 e 64: Category: Adult
        • Se l'età è pari o superiore a 65: Category: Senior

Questa sfida verifica la tua comprensione della definizione di struct, della dichiarazione dei membri con tipi di dati e dimensioni adeguati, dell'accesso ai membri di una struct usando l'operatore punto, della convalida dell'input e dell'uso di funzioni per le stringhe come strlen() con i membri di una struct. Ti eserciterai a creare una struttura dati pratica che potrebbe costituire la base di un sistema di gestione dei contatti.

Provalo tu

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

// TODO: Definisci qui la struct Contact

int main() {
    // TODO: Crea una variabile Contact chiamata person
    
    // Leggi i valori di input
    scanf("%s", /* TODO: assegna a person.name */);
    scanf("%s", /* TODO: assegna a person.phone */);
    scanf("%s", /* TODO: assegna a person.email */);
    scanf("%d", /* TODO: assegna a person.age */);
    
    // TODO: Scrivi qui sotto il codice per la validazione e l'output
    
    return 0;
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C online