1. Bài tập sao chép 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à sao chép chuỗi x1 sang một chuỗi x2 rỗng 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.

Các bước thực hiện yêu cầu của bài tập so sao chép 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 saochep(char x1[], char x2[]) dùng để sao chép chuỗi hai chuỗi. Trong hàm, ta dùng vòng lặp for bắt đầu từ int i = 0, kết thúc khi i<strlen(x2) và mỗi lần lặp i tăng lên 1. Trong vòng lặp ta gán giá trị của kí tự x1 tại vị trí thứ i bằng giá trị của kí tự x2 tại vị trí thứ i (x1[i]=x2[i]). Kết thúc lặp ta gán x1[strlen(x2)] = ‘\0’ gán giá trị kết thúc cho chuỗi.

Bước 2: Trong hàm main khai báo biến char x1[100] và char x2[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 hai biến x1. Rồi in biến x1 và x2 ra màn hình.

Bước 4: Ta dùng gọi hàm saochep(x2,x1) sao chép x1 sang x2 rồi in lại x1 và x2 ra màn hình.

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

Chương trình giải bài tập sao chép hai chuỗi bằng ngôn ngữ lập trình C như sau:

#include <stdio.h> 
#include <string.h>
void saochep(char x1[], char x2[]){
    for(int i=0; i<strlen(x2); i++){
        x1[i]=x2[i];//gan x1 tai vi tri thu i bang x2 tai vi tri thu i
    }
    x1[strlen(x2)]='\0';//gan gia tri ket thuc bang ky tu '\0'
}
int main(){ 
    char x1[100];// khai bao chuoi x1 có toi da 100 ky tu
    char x2[100]="";// khai bao chuoi x2 có toi da 100 ky tu
    printf("Nhap vao chuoi x1: "); 
    gets(x1);
    printf("\nChuoi vua nhap la: \nx1 = %s\nx2 = %s", x1,x2);
    saochep(x2,x1);//sao chep ky tu cua chuoi x1 sang chuoi x2
    printf("\nChuoi sau khi sao chep la: \nx1 = %s\nx2 = %s", x1,x2);
}

Ví dụ tôi nhập chuỗi x1 = laptrinhtudau

Kết quả:

Nhap vao chuoi x1: laptrinhtudau

Chuoi vua nhap la:
x1 = laptrinhtudau
x2 =
Chuoi sau khi sao chep la:
x1 = laptrinhtudau
x2 = laptrinhtudau

Ngoài ra, trong ngôn ngữ lập trình C có một hàm có sẵn trong thư viện string.h là strcpy() dùng để sao chép chuỗi.

Chương trình giải bài tập sao chép hai 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 x1[100];// khai bao chuoi x1 có toi da 100 ky tu
    char x2[100]="";// khai bao chuoi x2 có toi da 100 ky tu
    printf("Nhap vao chuoi x1: "); 
    gets(x1);
    printf("\nChuoi vua nhap la: \nx1 = %s\nx2 = %s", x1,x2);
    strcpy(x2,x1);//sao chep ky tu cua chuoi x1 sang chuoi x2
    printf("\nChuoi sau khi sao chep la: \nx1 = %s\nx2 = %s", x1,x2);
}

Ví dụ tôi nhập chuỗi x1 = HelloWorld

Kết quả:

Nhap vao chuoi x1: HelloWorld

Chuoi vua nhap la:
x1 = HelloWorld
x2 =
Chuoi sau khi sao chep la:
x1 = HelloWorld
x2 = 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 sao chép hai chuỗi với nhau trong C.
  • Cách sử dụng hàm strcpy() trong C.