Menu
CoddyTech

Ôn tập: Trình xác thực hồ sơ người dùng

Thuộc phần Logic và luồng chương trình trong hành trình Rust của Coddy. Bài học 65 trên 66.

challenge icon

Thử thách

Dễ

Bạn sẽ nhận ba đầu vào đại diện cho hồ sơ người dùng. Đầu vào thứ nhất là tên người dùng, đầu vào thứ hai là tuổi và đầu vào thứ ba là địa chỉ email. Kiểm tra hồ sơ theo các quy tắc sau rồi in thông báo phù hợp:

Quy tắc kiểm tra:

  • Tên người dùng phải có ít nhất 3 ký tự
  • Tuổi phải nằm trong khoảng từ 13 đến 120, tính cả hai đầu
  • Email phải chứa ký hiệu @

Yêu cầu:

  • Đọc đầu vào tên người dùng và loại bỏ khoảng trắng ở đầu và cuối
  • Đọc đầu vào tuổi, loại bỏ khoảng trắng ở đầu và cuối rồi phân tích thành i32
  • Đọc đầu vào email và loại bỏ khoảng trắng ở đầu và cuối
  • Kiểm tra xem tên người dùng có ít nhất 3 ký tự hay không
  • Kiểm tra xem tuổi có nằm trong khoảng từ 13 đến 120 hay không, dùng match với các phạm vi
  • Kiểm tra xem email có chứa ký tự @ hay không, dùng phương thức .contains()
  • Nếu tất cả các bước kiểm tra đều đạt, in: Valid profile
  • Nếu tên người dùng quá ngắn, in: Invalid username
  • Nếu tuổi nằm ngoài phạm vi, in: Invalid age
  • Nếu email không chứa @, in: Invalid email
  • Kiểm tra theo thứ tự: tên người dùng trước, tiếp theo là tuổi, rồi đến email

Đầu vào:

  • Dòng thứ nhất: Tên người dùng (ví dụ: alice123)
  • Dòng thứ hai: Tuổi (ví dụ: 25)
  • Dòng thứ ba: Địa chỉ email (ví dụ: alice@example.com)

Đầu ra:

  • Một trong các giá trị sau: Valid profile, Invalid username, Invalid age hoặc Invalid email

Tự làm thử

use std::io;

fn main() {
    // Đọc đầu vào username
    let mut username = String::new();
    io::stdin().read_line(&mut username).expect("Failed to read line");
    let username = username.trim();
    
    // Đọc đầu vào age
    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");
    
    // Đọc đầu vào email
    let mut email = String::new();
    io::stdin().read_line(&mut email).expect("Failed to read line");
    let email = email.trim();
    
    // TODO: Viết code bên dưới để xác thực hồ sơ
    // Kiểm tra độ dài username, khoảng tuổi và định dạng email
    // In ra thông báo phù hợp dựa trên kết quả xác thực
    
}

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Rust online