Powtórka – walidator profilu użytkownika
Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 65 z 66.
Wyzwanie
ŁatwyOtrzymasz trzy dane wejściowe reprezentujące profil użytkownika. Pierwsza to nazwa użytkownika, druga to wiek, a trzecia to adres e-mail. Zweryfikuj profil zgodnie z poniższymi zasadami i wypisz odpowiedni komunikat:
Zasady weryfikacji:
- Nazwa użytkownika musi mieć co najmniej 3 znaki
- Wiek musi mieścić się w przedziale od 13 do 120 (włącznie)
- Adres e-mail musi zawierać symbol
@
Wymagania:
- Wczytaj nazwę użytkownika i usuń białe znaki z jej początku i końca
- Wczytaj wiek, usuń białe znaki z jego początku i końca, a następnie sparsuj go do typu
i32 - Wczytaj adres e-mail i usuń białe znaki z jego początku i końca
- Sprawdź, czy nazwa użytkownika ma co najmniej 3 znaki
- Sprawdź, czy wiek mieści się w przedziale od 13 do 120 (użyj
matchz zakresami) - Sprawdź, czy adres e-mail zawiera znak
@(użyj metody.contains()) - Jeśli wszystkie weryfikacje zakończą się powodzeniem, wypisz:
Valid profile - Jeśli nazwa użytkownika jest za krótka, wypisz:
Invalid username - Jeśli wiek jest poza zakresem, wypisz:
Invalid age - Jeśli adres e-mail nie zawiera
@, wypisz:Invalid email - Weryfikuj dane w tej kolejności: najpierw nazwę użytkownika, następnie wiek, a na końcu adres e-mail
Dane wejściowe:
- Pierwszy wiersz: nazwa użytkownika (np.
alice123) - Drugi wiersz: wiek (np.
25) - Trzeci wiersz: adres e-mail (np.
alice@example.com)
Wynik:
- Jeden z komunikatów:
Valid profile,Invalid username,Invalid agelubInvalid email
Spróbuj swoich sił
use std::io;
fn main() {
// Wczytaj nazwę użytkownika
let mut username = String::new();
io::stdin().read_line(&mut username).expect("Failed to read line");
let username = username.trim();
// Wczytaj wiek
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");
// Wczytaj adres e-mail
let mut email = String::new();
io::stdin().read_line(&mut email).expect("Failed to read line");
let email = email.trim();
// TODO: Napisz poniżej kod sprawdzający poprawność profilu
// Sprawdź długość nazwy użytkownika, zakres wieku i format adresu e-mail
// Wyświetl odpowiedni komunikat na podstawie wyników sprawdzania
}Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane sterowanie przepływem
Wyrażenie „match”Dopasowywanie wielu wartościDopasowywanie zakresówWyrażenie „if let”Pętle jako wyrażeniaPodsumowanie — prosty parser poleceń4Grupowanie danych za pomocą struktur
Czym jest struktura?Przegląd strukturDostęp do pól strukturyModyfikowalne strukturyStruktury jako parametry funkcjiStruktury krotkowePodsumowanie — utwórz strukturę Book2Wprowadzenie do wektorów
Czym jest wektor?Tworzenie wektoraDodawanie elementów za pomocą pushDostęp do elementów wektoraIterowanie po wektorzeIterowanie z możliwością modyfikacjiUsuwanie elementówPodsumowanie — prosty licznik punktów5Pary klucz–wartość z mapami hashującymi
Czym jest mapa haszująca?Tworzenie mapy haszującejWstawianie par klucz–wartośćDostęp do wartościIterowanie po mapie haszującejAktualizowanie wartościUsuwanie paryPodsumowanie – licznik słów8Projekt: Prosty system inwentaryzacji
Konfiguracja projektuDodawanie produktuSprawdzanie stanu magazynowegoSprzedaż produktuŁączenie wszystkiego w całość11Wyzwania końcowe
Powtórka – unikalne elementyPowtórka – walidator profilu użytkownikaPowtórka – podsumowanie ocen3Lista zadań w wierszu poleceń
Konfiguracja projektuDodawanie zadaniaWyświetlanie wszystkich zadańUsuwanie zadaniaKońcowy kodPoćwicz samodzielnie: Kompilator Rust online