[Buổi 20][Chuỗi][HW] Bài 2: Title Case đơn giản


LÀM BÀI

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

Author:
Problem types
Allowed languages
C++

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

  1. Đọc cả dòng.
  2. Normalize spaces.
  3. Lowercase toàn bộ rồi uppercase ký tự đầu mỗi từ.
  4. 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 leTHI 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

There are no comments at the moment.

Zalo