
Chuỗi trong C là nền tảng cho xử lý văn bản và giao tiếp với người dùng. Hiểu rõ cách làm việc với chuỗi, thư viện string.h và các hàm quan trọng sẽ giúp bạn xây dựng các ứng dụng tương tác và xử lý dữ liệu hiệu quả.
Chuỗi (string) trong C thực chất là mảng các ký tự kết thúc bằng ký tự null (\0). Chuỗi là một trong những kiểu dữ liệu quan trọng nhất trong lập trình, được sử dụng để lưu trữ và xử lý văn bản, giao tiếp với người dùng và xử lý dữ liệu.
Quảng cáo giúp chúng tôi duy trì trang web này
Tổng quan về chuỗi
Khái niệm chuỗi
Chuỗi trong C là một mảng các ký tự kết thúc bằng ký tự null (\0). Ký tự null đánh dấu kết thúc chuỗi.
Cú pháp khai báo chuỗi
Ví dụ thực tế:
- Null terminator: Luôn kết thúc bằng
\0 - Kích thước: Phải cấp phát đủ không gian cho
\0 - Immutable: Chuỗi literal không thể thay đổi
- Array-based: Thực chất là mảng char
Nhập và xuất chuỗi
Xuất chuỗi với printf()
Nhập chuỗi với scanf()
Nhập chuỗi có khoảng trắng với gets() và fgets()
Các hàm xử lý chuỗi cơ bản
strlen() - Tính độ dài chuỗi
strcpy() - Sao chép chuỗi
strcat() - Nối chuỗi
strcmp() - So sánh chuỗi
Các hàm xử lý chuỗi nâng cao
strchr() - Tìm ký tự trong chuỗi
strstr() - Tìm chuỗi con
strtok() - Tách chuỗi
Xử lý ký tự
Các hàm xử lý ký tự
Các thao tác cơ bản với chuỗi
Đảo ngược chuỗi
Đếm số từ trong chuỗi
Đếm nguyên âm và phụ âm
Sắp xếp chuỗi
Sắp xếp mảng chuỗi
Xử lý chuỗi động
Cấp phát bộ nhớ cho chuỗi
Ví dụ thực hành
1. Chương trình đăng nhập đơn giản
2. Chương trình sắp xếp tên theo alphabet
3. Chương trình đếm tần suất ký tự
Tổng kết
Chuỗi là nền tảng cho việc xử lý văn bản và giao tiếp với người dùng trong C.
- Buffer overflow: Luôn kiểm tra kích thước khi nhập chuỗi
- Null terminator: Không quên ký tự
\0khi thao tác - Memory leak: Giải phóng bộ nhớ khi dùng chuỗi động
- String literals: Không thể thay đổi nội dung chuỗi literal
- Sử dụng
fgets()thay vìscanf()để nhập chuỗi an toàn - Luôn kiểm tra kết quả các hàm xử lý chuỗi
- Sử dụng
strncpy()thay vìstrcpy()để an toàn hơn - Khởi tạo chuỗi trước khi sử dụng
Với những kiến thức này, bạn đã sẵn sàng để xây dựng các ứng dụng tương tác với người dùng và xử lý dữ liệu văn bản phức tạp!
Last updated on