Dây C
Dây
Chuỗi được sử dụng để lưu trữ văn bản/ký tự.
Ví dụ: "Xin chào thế giới" là một chuỗi ký tự.
Không giống như nhiều ngôn ngữ lập trình khác, C không có kiểu String để dễ dàng tạo biến chuỗi. Thay vào đó, bạn phải sử dụng kiểu char
và tạo mảng ký tự để tạo chuỗi trong C:
char greetings[] = "Hello World!";
Lưu ý rằng bạn phải sử dụng dấu ngoặc kép ( ""
).
Để xuất chuỗi, bạn có thể sử dụng hàm printf()
cùng với bộ xác định định dạng %s
để cho C biết rằng chúng ta hiện đang làm việc với chuỗi:
Chuỗi truy cập
Vì chuỗi thực chất là mảng trong C nên bạn có thể truy cập chuỗi bằng cách tham khảo số chỉ mục của chuỗi bên trong dấu ngoặc vuông []
.
Ví dụ này in ký tự đầu tiên (0) trong lời chào :
Lưu ý rằng chúng ta phải sử dụng công cụ xác định định dạng %c
để in một ký tự đơn .
Sửa đổi chuỗi
Để thay đổi giá trị của một ký tự cụ thể trong chuỗi, hãy tham khảo số chỉ mục và sử dụng dấu ngoặc đơn :
Ví dụ
char greetings[] = "Hello World!";
greetings[0] = 'J';
printf("%s", greetings);
// Outputs Jello World! instead of Hello
World!
Hãy tự mình thử »Lặp qua một chuỗi
Bạn cũng có thể lặp qua các ký tự của chuỗi bằng vòng lặp for
:
Ví dụ
char carName[] = "Volvo";
int i;
for (i = 0; i < 5; ++i) {
printf("%c\n", carName[i]);
}
Hãy tự mình thử » Và giống như chúng tôi đã chỉ ra trong chương mảng , bạn cũng có thể sử dụng công thức sizeof (thay vì viết thủ công kích thước của mảng trong điều kiện vòng lặp (i < 5)
) để vòng lặp bền vững hơn:
Ví dụ
char carName[] = "Volvo";
int length = sizeof(carName) /
sizeof(carName[0]);
int i;
for (i = 0; i < length; ++i) {
printf("%c\n", carName[i]);
}
Hãy tự mình thử »Một cách khác để tạo chuỗi
Trong các ví dụ trên, chúng tôi đã sử dụng "chuỗi ký tự" để tạo biến chuỗi. Đây là cách dễ nhất để tạo chuỗi trong C.
Bạn cũng nên lưu ý rằng bạn có thể tạo một chuỗi bằng một bộ ký tự. Ví dụ này sẽ tạo ra kết quả tương tự như ví dụ ở đầu trang này:
Ví dụ
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd',
'!', '\0'};
printf("%s", greetings);
Hãy tự mình thử » Tại sao chúng ta thêm ký tự \0
vào cuối? Đây được gọi là "ký tự kết thúc null" và phải được đưa vào khi tạo chuỗi bằng phương pháp này. Nó báo cho C biết đây là phần cuối của chuỗi.
Sự khác biệt
Sự khác biệt giữa hai cách tạo chuỗi là phương pháp đầu tiên dễ viết hơn và bạn không cần phải thêm ký tự \0
vì C sẽ làm điều đó cho bạn.
Bạn nên lưu ý rằng kích thước của cả hai mảng là như nhau: Cả hai đều có 13 ký tự (dấu cách cũng được tính là một ký tự), bao gồm cả ký tự \0
:
Ví dụ
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd',
'!', '\0'};
char greetings2[] = "Hello World!";
printf("%lu\n",
sizeof(greetings)); // Outputs 13
printf("%lu\n",
sizeof(greetings2)); // Outputs 13
Hãy tự mình thử »Ví dụ thực tế
Sử dụng chuỗi để tạo một thông điệp chào mừng đơn giản:
Ví dụ
char message[] = "Good to see you,";
char fname[] = "John";
printf("%s
%s!", message, fname);
Hãy tự mình thử »