[Buổi 20][Chuỗi][HW] Bài 2: Title Case đơn giản
Title Case đơn giản
Bối cảnh
Một hệ thống hồ sơ nhận họ tên với casing lộn xộn và khoảng trắng không đều. Yêu cầu là chuẩn hóa về dạng đơn giản: bỏ khoảng trắng thừa, viết hoa ký tự đầu của mỗi từ và viết thường các ký tự còn lại. Bài không xử lý quy tắc tên riêng đặc biệt; mục tiêu là luyện duyệt ký tự, tolower/toupper và trạng thái "đang ở đầu từ".
Homework Easy vẫn giữ std::string làm công cụ an toàn. Người học cần nhớ ép về unsigned char khi dùng các hàm trong <cctype> ở code tổng quát, và nên tách bước normalize spaces khỏi bước normalize casing để pipeline dễ kiểm tra.
Yêu cầu
- Đọc cả dòng.
- Normalize spaces.
- Lowercase toàn bộ rồi uppercase ký tự đầu mỗi từ.
- In kết quả.
Input
Một dòng.
Output
Một dòng Title Case.
Ràng buộc
0 ≤ |s| ≤ 1000, chỉ ASCII chữ và whitespace.
Ví dụ 1
Input
nGUYEN van AN
Output
Nguyen Van An
Giải thích
nGUYEN van AN sau bước casing có Nguyen, Van, An: ký tự đầu mỗi từ được viết hoa còn phần sau chuyển thường. Các space giữa từ đã đúng một, nên output là Nguyen Van An.
Ví dụ 2
Input
le THI b
Output
Le Thi B
Giải thích
Chuỗi le THI b trước hết được gom ba khoảng trắng giữa le và THI thành một. Sau đó mỗi từ được xử lý độc lập: le thành Le, THI thành Thi, còn từ một ký tự b thành B. Không còn space thừa ở hai biên, nên output chính xác là Le Thi B.
Thông tin học tập
- Module: M06
- Buổi: B20
- Loại bài: HOMEWORK
- Độ khó: Easy
- Concepts: string, cctype, case normalization, whitespace normalization
- Giới hạn kiến thức: B01-B20
- Time limit: 1 second(s)
- Memory limit: 256 MB
- Point: 100
Comments