5.6.1 Chuỗi kí tự
Trong ngôn ngữ lập trình C không có kiểu dữ liệu chuỗi mà chuỗi trong C là một dãy các kí tự kiểu char. Một chuỗi trong C được đánh dấu kết thúc là ‘\0’ (còn gọi là NULL trong bảng mã Ascii) và có độ dài tùy ý, điều này cũng có nghĩa chuỗi ký tự trong C là một mảng các ký tự char.
Chúng ta có thể gán một chuỗi cho một biến pointer chỉ đến char
Ví dụ 5.30:
char str[20]= “ \nHappy New Year”
Không thể cộng, trừ, nhân, chia 2 chuỗi kí tự lại bằng phép toán đơn thuần. Tất cả những điều đó phải được làm bằng các hàm riêng lẽ. Ta có thể gán một chuỗi này bằng một chuỗi khác (strcpy), so sánh 2 chuỗi kí tự với nhau theo thứ tự từ điển (strcmp), cộng 2 chuỗi với nhau (strcat),...
81
Mọi hằng chuỗi đều được ngôn ngữ lập trình C lưu trữ như là một mảng các
char và kết thúc bằng kí tự ‘\0’. Hơn nữa, một chuỗi trong chương trình chúng ta
chỉ nhận được địa chỉ và chỉ đến đầu mảng lưu trữ. Việc truy xuất đến một hằng chuỗi đều được thực hiện qua một pointer chỉ đến mảng đó.
Ví dụ 5.31: printf(“Happy new year\n”);
thì hàm printf() thực sự cũng chỉ ghi nhận được pointer chỉ đến mảng kí tự này đang lưu trữ đến một chỗ nào đó mà thôi. Vì vậy, chúng ta có thể gán một hằng chuỗi cho một biến pointer chỉ đến char.
Ví dụ 5.32:
char*str;
str = “Happy new year \n”;
Lúc này, ta đã đưa pointer str giữ địa chỉ của chuỗi kí tự này. Ta có thể quy định rằng một mảng kí tự tận cùng bằng kí tự ‘\0’ được gọi là một chuỗi.