Chuỗi trong C là mảng một chiều các ký tự được kết thúc bằng một ký tự null '\ 0'. Vì vậy, một chuỗi null chấm dứt chứa các ký tự bao gồm chuỗi theo sau là một null.
Khai báo và khởi tạo sau đây tạo một chuỗi chứa từ "Hello". Để giữ ký tự null ở cuối mảng, kích thước của mảng ký tự chứa chuỗi nhiều hơn số ký tự trong từ "Hello".
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
Nếu bạn làm theo quy tắc khởi tạo mảng thì bạn có thể viết câu lệnh trên như sau:
char greeting[] = "Hello";
Sau đây là bản trình bày bộ nhớ của chuỗi được xác định ở trên trong C / C ++:
Trên thực tế, bạn không đặt ký tự null ở cuối chuỗi không đổi. Trình biên dịch C sẽ tự động đặt '\ 0' ở cuối chuỗi khi nó khởi tạo mảng. Hãy thử in chuỗi đã đề cập ở trên:
#include
int main () {
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
printf("Greeting message: %s\n", greeting );
return 0;
}
Khi mã trên được biên dịch và thực hiện, nó tạo ra kết quả sau:
Greeting message: Hello
Ngôn ngữ lập trình C hỗ trợ một loạt các chức năng điều khiển các chuỗi là null:
STT |
Chức năng & mục đích |
1 |
strcpy (s1, s2); Sao chép chuỗi s2 vào chuỗi s1. |
2 |
strcat (s1, s2); Nối chuỗi s2 vào cuối chuỗi s1. |
3 |
strlen (s1); Trả về độ dài của chuỗi s1. |
4 |
strcmp (s1, s2); Trả về 0 nếu s1 và s2 giống nhau; nhỏ hơn 0 nếu s1 s2. |
5 |
strchr (s1, ch); Trả về một con trỏ đến lần xuất hiện đầu tiên của ký tự ch trong chuỗi s1. |
6 |
strstr (s1, s2); Trả về một con trỏ tới sự xuất hiện đầu tiên của chuỗi s2 trong chuỗi s1. |
Ví dụ sau sử dụng một số chức năng được đề cập ở trên:
#include
#include
int main () {
char str1[12] = "Hello";
char str2[12] = "World";
char str3[12];
int len ;
/* copy str1 into str3 */
strcpy(str3, str1);
printf("strcpy( str3, str1) : %s\n", str3 );
/* concatenates str1 and str2 */
strcat( str1, str2);
printf("strcat( str1, str2): %s\n", str1 );
/* total lenghth of str1 after concatenation */
len = strlen(str1);
printf("strlen(str1) : %d\n", len );
return 0;
}
Khi mã trên được biên dịch và thực hiện, nó tạo ra kết quả sau:
strcpy( str3, str1) : Hello
strcat( str1, str2): HelloWorld
strlen(str1) : 10
Một số tài liệu liên quan đến C khác: