Récapitulatif - Validateur de profil utilisateur
Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 65 sur 66.
Défi
FacileVous recevrez trois entrées représentant un profil utilisateur. La première entrée est un nom d'utilisateur (username), la deuxième est un âge (age), et la troisième est une adresse e-mail (email). Validez le profil selon les règles suivantes et affichez le message approprié :
Règles de validation :
- Le nom d'utilisateur doit comporter au moins 3 caractères
- L'âge doit être compris entre 13 et 120 (inclus)
- L'e-mail doit contenir le symbole
@
Exigences :
- Lire l'entrée du nom d'utilisateur et supprimer les espaces blancs (trim)
- Lire l'entrée de l'âge, supprimer les espaces blancs et l'analyser en
i32 - Lire l'entrée de l'e-mail et supprimer les espaces blancs
- Vérifier si la longueur du nom d'utilisateur est d'au moins 3 caractères
- Vérifier si l'âge est compris entre 13 et 120 (utiliser
matchavec des plages) - Vérifier si l'e-mail contient le caractère
@(utiliser la méthode.contains()) - Si toutes les validations réussissent, afficher :
Valid profile - Si le nom d'utilisateur est trop court, afficher :
Invalid username - Si l'âge est hors de portée, afficher :
Invalid age - Si l'e-mail ne contient pas
@, afficher :Invalid email - Vérifier les validations dans l'ordre : d'abord le nom d'utilisateur, puis l'âge, puis l'e-mail
Entrée :
- Première ligne : Un nom d'utilisateur (par exemple,
alice123) - Deuxième ligne : Un âge (par exemple,
25) - Troisième ligne : Une adresse e-mail (par exemple,
alice@example.com)
Sortie :
- L'un des messages suivants :
Valid profile,Invalid username,Invalid age, ouInvalid email
Essayez vous-même
use std::io;
fn main() {
// Lire l'entrée du nom d'utilisateur
let mut username = String::new();
io::stdin().read_line(&mut username).expect("Failed to read line");
let username = username.trim();
// Lire l'entrée de l'âge
let mut age_input = String::new();
io::stdin().read_line(&mut age_input).expect("Failed to read line");
let age: i32 = age_input.trim().parse().expect("Failed to parse age");
// Lire l'entrée de l'e-mail
let mut email = String::new();
io::stdin().read_line(&mut email).expect("Failed to read line");
let email = email.trim();
// TODO: Écrivez votre code ci-dessous pour valider le profil
// Vérifier la longueur du nom d'utilisateur, la tranche d'âge et le format de l'e-mail
// Afficher le message approprié en fonction des résultats de la validation
}Toutes les leçons de Logic & Flow
1Structures de contrôle avancées
L'expression 'match'Filtrage de plusieurs valeursFiltrage d'intervallesL'expression 'if let'Les boucles en tant qu'expressionsRécapitulatif - Analyseur de commandes simple4Regrouper des données avec les structures
Qu'est-ce qu'une structure ?Aperçu des structuresAccéder aux champs d'une structureStructures mutablesLes structures comme paramètres de fonctionStructures tupleRécapitulatif - Créer une structure Book2Introduction aux vecteurs
Qu'est-ce qu'un vecteur ?Créer un vecteurAjouter des éléments avec pushAccéder aux éléments d'un vecteurItérer sur un vecteurItération mutableSupprimer des élémentsRécapitulatif - Suivi de score basique5Paires clé-valeur avec les Hash Maps
Qu'est-ce qu'une Hash Map ?Créer une Hash MapInsérer des paires clé-valeurAccéder aux valeursParcourir une Hash MapMettre à jour une valeurSupprimer une paireRécapitulatif - Compteur de mots8Projet : Inventaire d'articles simple
Configuration du projetAjouter un articleVérifier le stockVendre un articleAssembler le tout11Défis finaux
Récapitulatif - Éléments uniquesRécapitulatif - Validateur de profil utilisateurRécapitulatif - Synthèse des notes3Liste de tâches en ligne de commande
Configuration du projetAjouter une tâcheAfficher toutes les tâchesSupprimer une tâcheCode final