1. Bài tập đảo ngược 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.

Yêu cầu của bài tập đưa ra cho chúng ta là đảo ngược 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.

Ví dụ ta có 1 chuỗi abcde được mô tả như sau:

Sau khi đảo ngược chuỗi ta được như sau chuỗi edcba được mô tả như sau:

Từ đó ta thấy được để đảo ngược chuỗi thì ta phải đổi chỗ ký tự ở vị trí thứ i cho ký tự ở vị trí length-i-1 (trong đó length là độ dài của chuỗi).

Các bước thực hiện yêu cầu của bài tập đảo ngược chuỗi bằng ngôn ngữ lập trình C như sau:

Bước 1: 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 2: 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 3: Khai báo biến int length = strlen(a) dùng để gán giá trị chiều dài của chuỗi.

Bước 4: Sau đó sử dụng vòng lặp for bắt đầu từ int i = 0, kết thúc khi i < length/2 và mỗi lần i tăng lên 1; trong vòng lặp ta đổi chỗ ký tự a[i] với a[length-i-1] qua biến char tg. Kết thúc lặp ta in chuỗi ra màn hình.

Bước 5: Chạy chương trình.

Chương trình giải bài tập đảo ngược chuỗi bằng 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("Chuoi ly tu vua nhap la: %s",a); 
    int length = strlen(a);// khai bao bien length la do dai chuoi
    
    for(int i = 0; i<length/2; i++){
        char tg = a[i];
        a[i] = a[length-i-1];
        a[length-i-1] = tg;
    }
    printf("\nChuoi theo chieu dao nguoc: %s",a);
}

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

Kết quả:

Nhap vao chuoi ky tu: laptrinhtudau.com
Chuoi ly tu vua nhap la: laptrinhtudau.com
Chuoi theo chieu dao nguoc: moc.uaduthnirtpal
Ngoài ra, trong ngôn ngữ lập trình C còn có sẵn một hàm đảo ngược chuỗi là hàm strrev() nằm trong thư viện string.h, hàm này được sinh ra nhằm mục đích giúp chúng ta đảo ngược chuỗi một cách dễ dàng hơn.
Chương trình giải bài tập đảo ngược chuỗi sử dụng hàm strrev() 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("Chuoi ly tu vua nhap la: %s",a); 
    strrev(a);
    printf("\nChuoi theo chieu dao nguoc: %s",a);
}

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

Kết quả:

Nhap vao chuoi ky tu: HelloWorld
Chuoi ly tu vua nhap la: HelloWorld
Chuoi theo chieu dao nguoc: dlroWolleH

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 đảo ngược chuỗi trong C.
  • Cách đổi chỗ các ký tự trong chuỗi qua biến trung gian.
  • Cách sử dụng hàm strrev() trong C.