1. Bài tập viết hoa và viết thường toàn bộ chuỗi bằng ngôn ngữ lập trình C

Bài tập này chúng ta sẽ sử dụng các kiến thức từ ngôn ngữ lập trình C như: cách nhập xuất chuỗi cơ bản trong ngôn ngữ lập trình C và dùng vòng lặp for để duyệt các ký tự trong chuỗi trong ngôn ngữ lập trinh C.

Yêu cầu của bài tập đưa ra cho chúng ta là viết hoa và viết thường toàn bộ chuỗi bằng ngôn ngữ lập trình C.

2. Lời giải

Để thực hiện bài toán này chúng ta cần có kiến thức cơ bản về ngôn ngữ lập trình C, các cách nhập xuất chuỗi cơ bản trong C và dùng vòng lặp for để duyệt các ký tự trong chuỗi trong ngôn ngữ lập trình C.

Ta có bảng mã ASCII như sau:

Vậy bảng mã ASCII là gì ?

ASCII (tên đầy đủ: American Standard Code for Information Interchange – Chuẩn mã trao đổi thông tin Hoa Kỳ), là bộ ký tự và bộ mã ký tự dựa trên bảng chữ cái La Tinh. Nó thường được dùng để hiển thị văn bản trong máy tính và các thiết bị thông tin khác. Mỗi bảng chữ cái, ký tự đặc biệt,…. trong C được biểu diễn bằng mã ASCII. Mã ASCII sử dụng 7 bit bộ nhớ để lưu trữ ký tự đó.

Từ bảng mã ASCII ta có thể thấy được các ký tựu viết hoa cách các ký tự viết thường tương ứng của chúng là 32

Ví dụ: A:65 còn a:97 cách nhau 32.

Từ đó ta có các bước thực hiện yêu cầu của bài tập viết hoa và viết thường toàn bộ chuỗi bằng ngôn ngữ lập trình C như sau:

Bước 1: Ta khởi tạo hàm void Inhoa(char a[]) dùng để in hoa toàn bộ chuỗi. Trong hàm ta khởi tạo vòng lặp for bắt đầu từ int i=0, kết thúc khi i<strlen(a) và mỗi lần lặp i tăng lên 1; trong vòng lặp ta dùng if với điều kiện a[i] >= ‘a’ && a[i] <= ‘z’ (là chữ in thường) nếu thỏa mãn thì a[i] = a[i] – 32 (theo bảng mã ASCII).

Bước 2: Ta khởi tạo hàm void Inthuong(char a[]) dùng để in thường toàn bộ chuỗi. Trong hàm ta khởi tạo vòng lặp for bắt đầu từ int i=0, kết thúc khi i<strlen(a) và mỗi lần lặp i tăng lên 1; trong vòng lặp ta dùng if với điều kiện a[i] >= ‘A’ && a[i] <= ‘Z’ (là chữ in hoa) nếu thỏa mãn thì a[i] = a[i] + 32 (theo bảng mã ASCII).

Bước 3: Trong hàm main khai báo biến char a[100] biến chứa ký thự ta sẽ nhập vào (tối đa 100 ký tự).

Bước 4: Nhập dữ liệu từ bàn phím gán vào biến a rồi in biến a ra màn hình.

Bước 5: Ta gọi hàm Inhoa(a) và Inthuong(a) rồi chạy chương trình.

Chương trình giải bài tập viết hoa và viết thường toàn bộ chuỗi bằng ngôn ngữ lập trình C như sau:

#include <stdio.h> 
#include <string.h>
void Inhoa(char a[])//ham in hoa
{
    for (int i = 0; i<strlen(a); i++)
    {
        if (a[i] >= 'a' && a[i] <= 'z')//neu la chu in thuong
        {
            a[i] = a[i] - 32;
        }
    }
}
void Inthuong(char a[])//ham in thuong
{
    for (int i = 0; i<strlen(a); i++)
    {
        if (a[i] >= 'A' && a[i] <= 'Z')//neu la chu in hoa
        {
            a[i] = a[i] + 32;
        }
    }
}
int main(){ 
    char a[100];// khai bao chuoi a có toi da 100 ky tu
    printf("Nhap vao chuoi ky tu: "); 
    gets(a);
    printf("\nChuoi vua nhap la: %s", a);
    Inhoa(a);
    printf("\nChuoi in hoa la: %s", a);
    Inthuong(a);
    printf("\nChuoi in thuong la: %s", a);
}

Ví dụ tôi nhập vào chuỗi: LapTrinhTuDau

Kết quả:

Nhap vao chuoi ky tu: LapTrinhTuDau

Chuoi vua nhap la: LapTrinhTuDau
Chuoi in hoa la: LAPTRINHTUDAU
Chuoi in thuong la: laptrinhtudau

Ngoài ra, trong ngôn ngữ lập trình C còn có các hàm hỗ chợ viêc viết hoa và viết thường các chuỗi nhanh chóng là hàm strupr() – viết hoa chuỗi và hàm strlwr() – viết thường chuỗi nằm trong thư viện string.h.

Chương trình giải bài tập viết hoa và viết thường toàn bộ chuỗi sử dụng hàm có sẵn trong ngôn ngữ lập trình C như sau:

#include <stdio.h> 
#include <string.h>
int main(){ 
    char a[100];// khai bao chuoi a có toi da 100 ky tu
    printf("Nhap vao chuoi ky tu: "); 
    gets(a);
    printf("\nChuoi vua nhap la: %s", a);
    printf("\nChuoi in hoa la: %s", strupr(a));
    printf("\nChuoi in thuong la: %s", strlwr(a));
}

Ví dụ tôi nhập vào chuỗi: HelloWorld

Kết quả:

Nhap vao chuoi ky tu: HelloWorld

Chuoi vua nhap la: HelloWorld
Chuoi in hoa la: HELLOWORLD
Chuoi in thuong la: helloworld

3. Tổng kết

Sau khi làm bài tập này các bạn cần phải hiểu và nắm được những kiến thức sau:

  • Cách nhập xuất chuỗi cơ bản trong ngôn ngữ lập trình C.
  • Cách sử dụng hàm strlen() trong C.
  • Cách sử dụng vòng lặp để duyệt qua các phần tử của chuỗi.
  • Cách in hoa và in thường một chuỗi trong C.
  • Cách sử dụng hàm strupr() trong C.
  • Cách sử dụng hàm strlwr() trong C.
  • Nắm được bảng mã ASCII.