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.

Tác giả: namnt

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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.