Hướng dẫn cho Chuyển hoá xâu
Chỉ sử dụng khi thực sự cần thiết như một cách tôn trọng tác giả và người viết hướng dẫn này.
Chép code từ bài hướng dẫn để nộp bài là hành vi có thể dẫn đến khóa tài khoản.
Chép code từ bài hướng dẫn để nộp bài là hành vi có thể dẫn đến khóa tài khoản.
Authors:
Spoiler Alert
(Lưu ý: Ở trong bài này mình sẽ đề cập tới 2 cách làm. Nếu bạn có cách nào ngoài 2 cách này, bạn có thể góp ý với mình)
Cách \(1\)
Với cách này, ta cần phải quan sát vào bảng mã \(ASCII\) để sử dụng cách \(1\) này.
- Ta nhận thấy: chữ a thường trong bảng mã ASCII có mã là \(97\), còn chữ A hoa có mã là \(65\), cách nhau \(32\) mã. Đối với ký tự thường và ký tự hoa còn lại trong bảng chữ cái cũng vậy.
Vậy ta có kết luận: Để đổi chữ hoa sang chữ thường, thì ta chỉ cần lấy ký tự hoa cộng với \(32\), và ngược lại.
Vì vậy, ta có được hướng làm của cách \(1\):
- Ta duyệt qua toàn xâu (chạy \(i\) từ \(0\) đến \(s.size()−1\)):
- Nếu như ký tự \(i\) là nguyên âm thường thì ta sẽ trừ ký tự cho \(32\).
- Nếu như ký tự \(i\) là nguyên âm hoa và phụ âm thường thì ta vẫn giữ nguyên.
- Nếu như ký tự \(i\) là phụ âm hoa thì ta sẽ cộng ký tự với \(32\).
Cách \(2\)
Với cách này, ta sử dụng hàm đổi chữ hoa thành chữ thường.
- Với cách này, ta cũng duyệt qua toàn xâu:
- Nếu như ký tự \(i\) là nguyên âm thường, ta chỉ in ra nguyên âm hoa, còn nguyên âm hoa thì ta giữ nguyên.
- Nếu như ký tự \(i\) là phụ âm hoa, ta sử dụng hàm
std::transform(s.begin(), s.end(),s.begin(),::tolower)
để đổi chữ hoa sang chữ thường, sau đó in ra ký tự đã đổi. - Nếu như ký tự \(i\) là phụ âm thường, thì ta vẫn giữ nguyên.
\(Accepted\) \(Code\)
(Chỉ dùng để tham khảo, vui lòng không chép. Đó là sự tôn trọng chính đáng dành cho người viết editorial)
Code tại đây
Bình luận
Code tham khảo cho bạn nào lười mở link:
2 bình luận nữa