[Buổi 20][Chuỗi][Lab] Bài 1: Clean Input Line
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
- Đọc age bằng cin.
- Chuyển sang getline an toàn.
- Chuẩn hóa whitespace: một space giữa các từ, không space đầu/cuối.
- Chuyển họ tên về Title Case đơn giản.
- 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