Chuỗi trong C
Chuỗi trong C là gì? Cách dùng chuỗi trong C như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!
Chuỗi trong C được dùng để phân loại text/ký tự. Ví dụ đơn giản nhất là “Hello World” thường thấy ở các mẫu trang web.
Chuỗi trong ngôn ngữ lập trình C thực chất là mảng một chiều của các ký tự mà kết thúc bởi một ký tự null '\0'.
Phần khai báo và khởi tạo dưới đây tạo ra một chuỗi bao gồm một từ "Hello". Để giữ các giá trị null tại cuối của mảng, cỡ của mảng các ký tự bao gồm một chuỗi phải nhiều hơn số lượng các ký tự trong từ khóa "Hello".
char loichao[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
Nếu bạn theo quy tắc khởi tạo các chuỗi, bạn có thể viết lệnh như sau:
char loichao[] = "Hello";
Dưới đây là phần biểu diễn ô nhớ cho đoạn chuỗi trên trong ngôn ngữ C/C++:
Thực tế, bạn không đặt ký tự null tại vị trí cuối cùng của biến hằng số. Bộ biên dịch C tự động thêm '\0' tại ví trí cuối cùng của chuỗi khi nó khởi tạo chuỗi. Cùng thử ví dụ in ra chuỗi sau đây:
#include <stdio.h>
int main ()
{
char loichao[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
printf("Khi gap nhau, ban chao: %s\n", loichao );
printf("\n===========================\n");
printf("QTM chuc cac ban hoc tot! \n");
return 0;
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
Ngôn ngữ C hỗ trợ một dãy rộng rãi các hàm để thao tác các chuỗi kết thúc là null:
Hàm | Mục đích |
---|---|
strcpy(s1, s2); | Sao chép chuỗi s2 cho chuỗi s1. |
strcat(s1, s2); | Nối chuỗi s2 vào cuối chuỗi s1. |
strlen(s1); | Trả về độ dài của chuỗi s1. |
strcmp(s1, s2); | Trả về 0 nếu s1 và s2 là như nhau; nhỏ hơn 0 nếu s1<s2; lớn hơn 0 nếu s1>s2. |
strchr(s1, ch); | Trả về con trỏ tới vị trí đầu tiên của ch trong s1. |
strstr(s1, s2); | Trả về con trỏ tới vị trí đầu tiên của chuỗi s2 trong chuỗi s1. |
Dưới đây là ví dụ cho việc sử dụng một vài hàm bên trên:
#include <stdio.h>
#include <string.h> /* thu vien cho cac ham xu ly chuoi*/
int main ()
{
char chuoi1[12] = "Hello";
char chuoi2[12] = "QTM";
char chuoi3[12];
int dodai ;
/* sao chep chuoi1 vao trong chuoi3 */
strcpy(chuoi3, chuoi1);
printf("Ban su dung ham strcpy( chuoi3, chuoi1) de sao chep: %s\n", chuoi3 );
/* noi hai chuoi: chuoi1 va chuoi2 */
strcat( chuoi1, chuoi2);
printf("Ban su dung ham strcat( chuoi1, chuoi2) de noi chuoi: %s\n", chuoi1 );
/* tinh do dai cua chuoi1 sau khi noi chuoi */
/* Quantrimang.com */
dodai = strlen(chuoi1);
printf("Ban su dung ham strlen(chuoi1) de tinh do dai: %d\n", dodai );
printf("\n===========================\n");
printf("QTM chuc cac ban hoc tot! \n");
return 0;
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
Bạn có thể tìm thấy một danh sách đầy đủ các hàm liên quan tới chuỗi trong Thư viện tiêu chuẩn C.
Chỉnh sửa các chuỗi
Để thay đổi giá trị của một ký tự cụ thể trong một chuỗi, tham chiếu tới số index đó và dùng dấu ngoặc đơn:
Ví dụ:
char greetings[] = "Hello World!";
greetings[0] = 'J';
printf("%s", greetings);
// Màn hình hiện Jello World! thay cho Hello World!
Lặp qua một chuỗi
Bạn cũng có thể lặp qua các ký tự của một chuỗi, bằng vòng lặp for:
char carName[] = "Volvo";
int i;
for (i = 0; i < 5; ++i) {
printf("%c\n", carName[i]);
}
Cách tạo chuỗi khác trong C
Ở ví dụ trên, chúng ta đã dùng một chuỗi ký tự để tạo biến. Đây là cách dễ nhất để tạo một chuỗi trong C.
Bạn cũng nên lưu ý rằng có thể tạo một chuỗi với một bộ ký tự:
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
printf("%s", greetings);
Bài trước: Con trỏ trong C
Bài tiếp: Cấu trúc (Struct) trong C
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

- Code NgầuThích · Phản hồi · 0 · 01/07/20

Cũ vẫn chất
-
3 cách tắt tường lửa Windows 11
Hôm qua -
Cách khắc phục lỗi Apple CarPlay không hoạt động
Hôm qua -
6 cách mở Computer/System Properties trong Windows 10
Hôm qua -
13 câu lệnh SQL quan trọng Programmer nào cũng cần biết
Hôm qua -
Tổng hợp các trang web lưu trữ dữ liệu trực tuyến miễn phí tốt nhất hiện nay
Hôm qua -
Hướng dẫn kết nối máy tính với máy chiếu, kết nối laptop với máy chiếu
Hôm qua 2 -
Mất quyền Admin trên Windows 10, đây là cách khắc phục
Hôm qua -
Làm sao để tải phụ đề video trên Youtube nhanh chóng và đơn giản?
Hôm qua -
Đáp án Brain Out, giải Brain Out level 1 đến level 255
Hôm qua -
Chụp ảnh và soi gương cái nào sẽ cho bạn hình ảnh chính xác nhất?
Hôm qua