Loading Now

Bài tập về hàm trong C++: viết hàm chuyển một xâu từ in hoa sang in thường.

Bài tập về hàm trong C++: viết hàm chuyển một xâu từ in hoa sang in thường.

Bài tập

Cho xâu s1, s2 và s3 được nhập từ bàn phím. Bạn hãy viết chương trình chuyển các ký tự in hoa trong 3 xâu này thành in thường và hiển thị cả 3 xâu ra màn hình.

Ví dụ nếu bạn nhập s1 = "CODELEARN", s2 = "FSOFT", s3 = "FPT" như bên dưới:

CODELEARN
FSOFT
FPT

Thì màn hình sẽ hiển thị ra:

codelearn
fsoft
fpt

Lý thuyết

Bài này sẽ giúp bạn hiểu hơn về lợi ích của hàm.

Trước tiên bạn hãy xem code khi làm bài này mà không sử dụng hàm:

#include<iostream>

using namespace std;

int main() {
    string s1, s2, s3;
    cin >> s1 >> s2 >> s3;
    
    for (int i = 0; i < s1.size(); i++) {
        if (s1[i] >= 'A' && s1[i] <= 'Z') {
            s1[i] += 32;
        }
    }

    for (int i = 0; i < s2.size(); i++) {
        if (s2[i] >= 'A' && s2[i] <= 'Z') {
            s2[i] += 32;
        }
    }

    for (int i = 0; i < s3.size(); i++) {
        if (s3[i] >= 'A' && s3[i] <= 'Z') {
            s3[i] += 32;
        }
    }

    cout << s1 << endl << s2 << endl << s3;

    return 0;
}

Chắc bạn cũng đã nhận thấy vấn đề với cách làm này: code ở cả 3 vòng for bị trùng lặp nhau. Rõ ràng bạn cần tìm cách để tái sử dụng lại đoạn code chuyển 1 xâu từ in hoa sang in thường thay vì cứ phải lặp lại đoạn code này mỗi khi sử dụng.

Qua các bài đã học về hàm, bạn đã biết rằng hàm được dùng để đại diện cho 1 đoạn code, do đó bạn có thể đặt đoạn code bị trùng lặp vào trong hàm và mỗi khi sử dụng bạn chỉ cần gọi hàm.

Để thấy được lợi ích của hàm bạn hãy xem code khi làm bài này bằng hàm:

#include<iostream>

using namespace std;

// Khai báo hàm show với đầu vào là xâu s
void show(string s) {
    // Chuyển xâu s từ in hoa sang in thường
    for (int i = 0; i < s.size(); i++) {
        if (s[i] >= 'A' && s[i] <= 'Z') {
            s[i] += 32;
        }
    }
    // Hiển thị xâu s ra màn hình
    cout << s << endl;
}

int main() {
    string s1, s2, s3;
    cin >> s1 >> s2 >> s3;
    show(s1);
    show(s2);
    show(s3);
    return 0;
}

Có thể thấy khi sử dụng hàm code trở nên ngắn và dễ hiểu hơn.

Tới đây chắc bạn cũng đã biết cách làm bài này với hàm để code ngắn và đẹp hơn, hãy quay lại phần bài tập và làm thử.

Nếu bạn chưa làm được thì có thể xem hướng dẫn bên dưới.

Hướng dẫn

Code mẫu:

#include<iostream>

using namespace std;

void show(string s) {
    for (int i = 0; i < s.size(); i++) {
        if (s[i] >= 'A' && s[i] <= 'Z') {
            s[i] += 32;
        }
    }
    cout << s << endl;
}

int main() {
    string s1, s2, s3;
    cin >> s1 >> s2 >> s3;
    show(s1);
    show(s2);
    show(s3);
    return 0;
}

Post Comment

Contact