[Buổi 20][Chuỗi][Lab] Bài 1: Clean Input Line


LÀM BÀI

Points: 100
Time limit: 1.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

Clean Input Line

Bối cảnh

Một biểu mẫu đọc tuổi trước, sau đó đọc họ tên đầy đủ. Dữ liệu tên có thể có nhiều khoảng trắng và case lộn xộn.

Bạn cần xử lý đúng newline còn lại và chuẩn hóa tên.

Yêu cầu

  1. Đọc age bằng cin.
  2. Chuyển sang getline an toàn.
  3. Chuẩn hóa whitespace: một space giữa các từ, không space đầu/cuối.
  4. Chuyển họ tên về Title Case đơn giản.
  5. In age|normalizedName.

Yêu cầu tổ chức code

Phải đọc họ tên bằng getline.

Online Judge chủ yếu chấm output. Giảng viên có thể review thêm cấu trúc code để xác nhận học viên luyện đúng kỹ năng của buổi.

Input

Dòng 1 là tuổi. Dòng 2 là họ tên, có thể chứa khoảng trắng.

Output

Một dòng age|normalizedName.

Ràng buộc

0 ≤ age ≤ 120; tên dùng ký tự ASCII cơ bản.

Ví dụ 1

Input

18
   nGUYEN    van   an

Output

18|Nguyen Van An

Giải thích

Dòng đầu cho tuổi 18. Sau đó getline đọc họ tên thô có khoảng trắng thừa và chữ hoa/thường lộn xộn. Pipeline trim/collapse spaces rồi chuẩn hóa từng từ thành Nguyen Van An. Dữ liệu số và chuỗi được ghép bằng dấu |, nên output là 18|Nguyen Van An. Ví dụ cũng kiểm tra xử lý newline sau cin trước getline.

Ví dụ 2

Input

20
le THI b

Output

20|Le Thi B

Giải thích

Tuổi là 20 và tên thô le THI b đã có khoảng trắng tương đối sạch nhưng casing chưa chuẩn. Sau chuẩn hóa từng từ thành chữ đầu hoa, phần còn lại thường, ta được Le Thi B. Kết quả cuối là 20|Le Thi B.

Thông tin học tập

  • Module: M06
  • Buổi: B20
  • Loại bài: LAB
  • Độ khó: Easy
  • Concepts: getline, cin.ignore, whitespace normalization, case normalization
  • Giới hạn kiến thức: B01-B20
  • Time limit: 1 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo