Hướng dẫn giải của in thường
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Tác giả:
1. Sử dụng hàm tolower
Hàm tolower từ thư viện <cctype> chuyển một ký tự chữ hoa thành chữ thường.
Mã ví dụ:
cpp
#include <iostream>
#include <cctype>
using namespace std;
int main() {
string s;
cin >> s; // Nhập chuỗi từ người dùng
for (char &c : s) {
c = tolower(c); // Chuyển từng ký tự sang chữ thường
}
cout << s; // In chuỗi đã chuyển
return 0;
}
2. Sử dụng hàm transform
Hàm std::transform từ thư viện <algorithm> áp dụng một hàm cho tất cả các phần tử trong chuỗi.
Mã ví dụ:
cpp
#include <iostream>
#include <algorithm>
#include <cctype>
using namespace std;
int main() {
string s;
cin >> s; // Nhập chuỗi từ người dùng
transform(s.begin(), s.end(), s.begin(), ::tolower); // Chuyển chữ hoa sang thường
cout << s; // In chuỗi đã chuyển
return 0;
}
3. Thủ công bằng vòng lặp
Duyệt từng ký tự trong chuỗi và kiểm tra nếu ký tự là chữ hoa, thì chuyển nó sang chữ thường bằng cách trừ đi 'A' và cộng 'a'.
Mã ví dụ:
cpp
#include <iostream>
using namespace std;
int main() {
string s;
cin >> s; // Nhập chuỗi từ người dùng
for (char &c : s) {
if (c >= 'A' && c <= 'Z') { // Kiểm tra nếu là chữ hoa
c = c - 'A' + 'a'; // Chuyển thành chữ thường
}
}
cout << s; // In chuỗi đã chuyển
return 0;
}
So sánh các cách
Dùng tolower: Đơn giản, dễ hiểu khi chỉ cần xử lý ký tự riêng lẻ.
Dùng transform: Hiệu quả và ngắn gọn khi xử lý chuỗi lớn.
Thủ công: Giúp người mới học hiểu rõ cơ chế chuyển đổi.
Ví dụ minh họa
Đầu vào:
HELLOworld123
Kết quả:
helloworld123
Bình luận