1. Bài tập viết hoa chữ cái đầu tiên của mỗi từ trong 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 chữ cái đầu tiên của mỗi từ trong 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.

Từ đó ta có các bước thực hiện yêu cầu của bài tập viết hoa chữ cái đầu tiên của mỗi từ trong 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 Inhoadautien(char a[]) dùng để in hoa chữ cái đầu tiên trong 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 i==0 || (i>0 && a[i-1]==’  ‘) (nếu là chữ cái đầu tiên trong chuỗi hoặc là chữ cái ngay sau ký tự cách) nếu thỏa mãn thì ta dùng if với điều kiện a[i]>=’a’ && a[i]<=’z’ (nếu ký tự đó là chữ in thường) nếu thỏa mãn thì gán a[i]=a[i]-32; ngược lại với trường hợp i==0 || (i>0 && a[i-1]==’  ‘) (nếu là chữ cái nằm trong từ không phải chữ cái đầu tiên) ta dùng if với điều kiện a[i]>=’A’ && a[i]<=’Z’ (nếu là chữ in hoa) thỏa mãn thì a[i]=a[i]+32 .

Bước 2: 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 3: 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 4: Ta gọi hàm Inhoadautin(a) và in ra chuỗi a rồi chạy chương trình.

Chương trình giải bài tập viết hoa chữ cái đầu tiên của mỗi từ trong chuỗi bằng ngôn ngữ lập trình C như sau:

#include <stdio.h> 
#include <string.h>
void Inhoachudau(char a[]){
    for(int i=0; i<strlen(a); i++){
        if(i==0|| (i>0 && a[i-1]==' ')){//neu la ky tu dau tien cua chuôi hoac ky tu ngay sau ky tu cach 
            if(a[i]>='a' && a[i]<='z')//neu la ky tu viet thuong doi thanh viet hoa
                a[i]=a[i]-32;	
        }else{
            //neu chu cai khong phai o dau moi tu viet hoa chuyen thanh viet thuong
            if(a[i]>='A' && a[i]<='Z'){
                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);
    Inhoachudau(a);
    printf("\nChuoi la: %s", a);
}

Ví dụ tôi nhập vào chuỗi: laP tRinh tu dAu

Kết quả:

Nhap vao chuoi ky tu: laP tRinh tu dAu

Chuoi vua nhap la: laP tRinh tu dAu
Chuoi la: Lap Trinh Tu Dau

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 in hoa chữ cái đầu tiên của từ trong chuỗi C.