Tài liệu học lập trình c cho người khiếm thị
  • 1. LỜI NÓI ĐẦU
    • Lời nói đầu
  • 2. BÀI HỌC LÝ THUYẾT
    • Bài 1. Giới thiệu về ngôn ngữ lập trình C
    • Bài 2. Cài đặt môi trường và viết chương trình đầu tiên
    • Bài 3. Biến và kiểu dữ liệu
    • Bài 4. Toán tử và biểu thức
    • Bài 5. Nhập và xuất trong C
    • Bài 6. Câu lệnh điều kiện rẽ nhánh
    • Bài 7. Vòng lặp
    • Bài 8. Mảng
    • Bài 9. Con trỏ
    • Bài 10. Hàm
    • Bài 11. Chuỗi
    • Bài 12. Các kiểu dữ liệu nâng cao và thuật toán sắp xếp
    • Bài 13. Quản lý tập tin
  • Bài tập nhỏ
    • Bài tập 1: Biến và kiểu dữ liệu
    • Bài tập 2: Toán tử và biểu thức
    • Bài tập 3: Nhập và xuất trong C
    • Bài tập 4: Câu lệnh điều kiện
    • Bài tập 5: Vòng lặp
    • Bài tập 6: Mảng
    • Bài tập 7: Con trỏ
    • Bài tập 8: Hàm
    • Bài tập 9: Chuỗi
    • Bài tập 10: Dữ liệu nâng cao và sắp xếp
    • Bài tập 11: Quản lý tập tin
  • Bài tập lớn
    • Bài tập 1: Quản lý sinh viên
    • Bài tập 2: Phần mềm quản lý thư viện
    • Bài tập 3: Chương trình quản lý danh bạ
  • 4. VÍ DỤ MINH HỌA
    • Ví dụ 1: Chương trình Hello World
    • Ví dụ 2: Máy tính đơn giản
    • Ví dụ 3: Kiểm tra số nguyên tố
    • Ví dụ 4: Đọc và ghi file trong C
    • Ví dụ 5: Sử dụng con trỏ trong C
    • Ví dụ 6: Quản lý sinh viên sử dụng struct
    • Ví dụ 7: Sắp xếp mảng bằng thuật toán Bubble Sort
    • Ví dụ 8: Đọc ghi file CSV
    • Ví dụ 9: Duyệt mảng bằng con trỏ
    • Ví dụ 10: Quản lý bộ nhớ động
    • Ví dụ 11: Sử dụng vòng lặp để xử lý dữ liệu
    • Ví dụ 12: Xử lý chuỗi bằng thư viện string.h
    • Ví dụ 13: Cấu trúc dữ liệu nâng cao
  • 5. PHỤ LỤC
    • phần I. Các hàm chuẩn trong thư viện C
    • phần II. Cấu trúc dữ liệu trong C
    • Phần III: Thuật toán cơ bản
    • Phần IV: Thuật ngữ lập trình
  • 6. THÔNG TIN TÀI LIỆU
    • thông tin tài liệu
Powered by GitBook
On this page
  • I: Mục tiêu bài học:
  • II: Nội dung bài học:
  • 1. Khái niệm về chuỗi trong C
  • 2. Nhập và xuất chuỗi
  • 3. Các thao tác trên chuỗi
  • 4. Mảng ký tự và con trỏ
  • 5. Lưu ý khi làm việc với chuỗi (Dành cho người khiếm thị)
  • III: Tóm tắt bài học
  • IV: Kết nối bài học
  1. 2. BÀI HỌC LÝ THUYẾT

Bài 11. Chuỗi

I: Mục tiêu bài học:

  • Hiểu khái niệm về chuỗi trong C.

  • Biết cách khai báo, khởi tạo và sử dụng chuỗi.

  • Thành thạo các thao tác xử lý chuỗi như nhập, xuất, duyệt chuỗi và sử dụng các hàm xử lý chuỗi trong thư viện <string.h>.

  • Nắm được cách làm việc với con trỏ và mảng ký tự trong xử lý chuỗi.

II: Nội dung bài học:

1. Khái niệm về chuỗi trong C

Trong ngôn ngữ lập trình C, chuỗi không phải là một kiểu dữ liệu riêng biệt như trong các ngôn ngữ lập trình cấp cao khác (Python, Java, v.v.). Thay vào đó, chuỗi trong C được biểu diễn dưới dạng một mảng các ký tự kết thúc bởi ký tự \0 (null terminator).

Ví dụ khai báo một chuỗi trong C:

char str1[] = "Hello";
char str2[10] = "World";
char str3[] = {'H', 'i', '\0'};

Khi khai báo chuỗi theo cách trên, trình biên dịch sẽ tự động thêm ký tự kết thúc \0 vào cuối chuỗi để xác định điểm kết thúc.

2. Nhập và xuất chuỗi

Cung cấp dữ liệu đầu vào và hiển thị chuỗi là hai thao tác quan trọng khi làm việc với chuỗi.

2.1. Xuất chuỗi

Sử dụng printf hoặc puts để xuất chuỗi:

#include <stdio.h>

int main() {
    char name[] = "Alice";
    printf("Tên của bạn là: %s\n", name);
    puts(name); // Cách khác để xuất chuỗi
    return 0;
}

2.2. Nhập chuỗi

Sử dụng scanf, gets (trước C11, không khuyến khích), hoặc fgets để nhập chuỗi từ bàn phím.

#include <stdio.h>

int main() {
    char name[50];
    printf("Nhập tên của bạn: ");
    scanf("%49s", name); // Không nhập được chuỗi có dấu cách
    printf("Xin chào, %s!\n", name);
    return 0;
}

Để nhập chuỗi có dấu cách, sử dụng fgets:

#include <stdio.h>

int main() {
    char name[50];
    printf("Nhập tên đầy đủ của bạn: ");
    fgets(name, sizeof(name), stdin);
    printf("Xin chào, %s!", name);
    return 0;
}

3. Các thao tác trên chuỗi

C cung cấp nhiều hàm trong thư viện <string.h> để thao tác với chuỗi.

Hàm
Chức năng

strlen(s)

Trả về độ dài chuỗi s (không tính \0)

strcpy(d,s)

Sao chép chuỗi s vào d

strncpy(d,s,n)

Sao chép tối đa n ký tự từ s sang d

strcat(d,s)

Nối chuỗi s vào cuối chuỗi d

strncmp(s1, s2, n)

So sánh n ký tự đầu tiên của s1 và s2

strchr(s, c)

Tìm vị trí đầu tiên của ký tự c trong chuỗi s

strstr(s1, s2)

Tìm chuỗi s2 trong s1

Ví dụ:

#include <stdio.h>
#include <string.h>

int main() {
    char s1[20] = "Hello";
    char s2[] = " World";
    strcat(s1, s2); // Nối chuỗi
    printf("Chuỗi sau khi nối: %s\n", s1);
    printf("Độ dài của chuỗi: %lu\n", strlen(s1));
    return 0;
}

4. Mảng ký tự và con trỏ

Chuỗi trong C có thể được xử lý bằng con trỏ thay vì mảng.

#include <stdio.h>

int main() {
    char *str = "Hello";
    printf("Chuỗi: %s\n", str);
    return 0;
}

5. Lưu ý khi làm việc với chuỗi (Dành cho người khiếm thị)

  • Luôn kiểm tra giới hạn bộ nhớ khi thao tác với chuỗi để tránh tràn bộ nhớ.

  • Sử dụng fgets thay vì scanf để tránh lỗi khi nhập chuỗi có dấu cách.

  • Khi so sánh chuỗi, luôn sử dụng strcmp thay vì toán tử ==.

III: Tóm tắt bài học

  • Chuỗi trong C được biểu diễn dưới dạng mảng ký tự kết thúc bởi \0.

  • Sử dụng printf, puts để xuất chuỗi và fgets để nhập chuỗi an toàn.

  • Thư viện <string.h> cung cấp nhiều hàm hỗ trợ xử lý chuỗi.

  • Con trỏ có thể được sử dụng để làm việc với chuỗi linh hoạt hơn.

IV: Kết nối bài học

Sau khi đã hiểu về chuỗi, trong bài tiếp theo, chúng ta sẽ tìm hiểu về Các kiểu dữ liệu nâng cao và sắp xếp để nắm bắt thêm cách tổ chức dữ liệu một cách hiệu quả trong lập trình C.

PreviousBài 10. HàmNextBài 12. Các kiểu dữ liệu nâng cao và thuật toán sắp xếp

Last updated 2 months ago