Ký tự * c ++

Trong lập trình C, một chuỗi là một dãy các ký tự được kết thúc bằng ký tự null

char s[5];
2. Ví dụ

char c[] = "c string";

Khi trình biên dịch gặp một chuỗi các ký tự được đặt trong dấu ngoặc kép, theo mặc định, nó sẽ thêm một ký tự null

char s[5];
2 vào cuối

Ký tự * c ++
sơ đồ bộ nhớ

Làm thế nào để khai báo một chuỗi?

Đây là cách bạn có thể khai báo chuỗi

char s[5];
Ký tự * c ++
Khai báo chuỗi trong C

Ở đây, chúng tôi đã khai báo một chuỗi gồm 5 ký tự


Làm thế nào để khởi tạo chuỗi?

Bạn có thể khởi tạo chuỗi theo một số cách

char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};
Ký tự * c ++
Khởi tạo chuỗi trong C

Hãy lấy một ví dụ khác

char c[5] = "abcde";

Ở đây, chúng tôi đang cố gắng gán 6 ký tự (ký tự cuối cùng là

char s[5];
4) cho một mảng
char s[5];
5 có 5 ký tự. Điều này là xấu và bạn không bao giờ nên làm điều này


Gán giá trị cho chuỗi

Mảng và chuỗi là công dân hạng hai trong C; . Ví dụ,

________số 8

Ghi chú. Thay vào đó, hãy sử dụng hàm strcpy() để sao chép chuỗi


Đọc chuỗi từ người dùng

Bạn có thể sử dụng hàm

char s[5];
6 để đọc một chuỗi

Hàm

char s[5];
6 đọc chuỗi ký tự cho đến khi gặp khoảng trắng (dấu cách, dòng mới, tab, v.v. )


ví dụ 1. scanf() để đọc một chuỗi

char c[] = "c string";
1

đầu ra

char c[] = "c string";
2

Mặc dù Dennis Ritchie đã được nhập vào chương trình trên nhưng chỉ có "Dennis" được lưu trong chuỗi tên. Đó là bởi vì có một khoảng trống sau Dennis

Cũng lưu ý rằng chúng tôi đã sử dụng tên mã thay vì

char s[5];
8 bằng
char s[5];
6

char c[] = "c string";
5

Điều này là do tên là một mảng

char s[5];
5 và chúng tôi biết rằng tên mảng phân rã thành con trỏ trong C

Do đó, tên trong 

char s[5];
6 đã trỏ đến địa chỉ của phần tử đầu tiên trong chuỗi, đó là lý do tại sao chúng ta không cần sử dụng
char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};
2


Làm thế nào để đọc một dòng văn bản?

Bạn có thể sử dụng hàm

char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};
3 để đọc một dòng chuỗi. Và, bạn có thể sử dụng
char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};
4 để hiển thị chuỗi


ví dụ 2. fgets() và đặt()

char s[5];
1

đầu ra

char s[5];
2

Ở đây, chúng tôi đã sử dụng chức năng

char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};
3 để đọc một chuỗi từ người dùng

char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};
6

Kết quả của

char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};
7 là 30. Do đó, chúng tôi có thể nhập tối đa 30 ký tự làm kích thước của chuỗi tên

Để in chuỗi, chúng tôi đã sử dụng

char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};
8

Ghi chú. Hàm

char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};
9 cũng có thể lấy đầu vào từ người dùng. Tuy nhiên, nó bị xóa khỏi tiêu chuẩn C

Đó là vì

char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};
9 cho phép bạn nhập bất kỳ độ dài ký tự nào. Do đó, có thể có lỗi tràn bộ đệm


Truyền chuỗi cho hàm

Các chuỗi có thể được chuyển đến một hàm theo cách tương tự như các mảng. Tìm hiểu thêm về cách truyền mảng cho hàm


ví dụ 3. Truyền chuỗi vào Hàm

char s[5];
0

Chuỗi và con trỏ

Tương tự như mảng, tên chuỗi được "phân rã" thành con trỏ. Do đó, bạn có thể sử dụng con trỏ để thao tác với các phần tử của chuỗi. Chúng tôi khuyên bạn nên kiểm tra Mảng và Con trỏ trong C trước khi kiểm tra ví dụ này

Char * nghĩa là gì trong C?

Trong C, char* có nghĩa là con trỏ tới ký tự . Chuỗi là một mảng các ký tự bị loại bỏ bởi ký tự null trong C.

Là char * Một con trỏ trong C?

Một ví dụ về khai báo con trỏ có thể là. ký tự *chptr; . the asterisk '*' signifies that 'chptr' is a pointer variable.

Char * có giống với char * không?

Sự khác biệt chính giữa chúng là cái đầu tiên là một mảng và cái còn lại là một con trỏ . Mảng sở hữu nội dung của nó, là bản sao của "Test" , trong khi con trỏ chỉ đơn giản đề cập đến nội dung của chuỗi (trong trường hợp này là bất biến).

Làm cách nào để in ký tự * trong C?

Bạn muốn sử dụng %s , dành cho chuỗi (char*). %c dành cho các ký tự đơn (char). Dấu hoa thị * sau một loại làm cho nó trở thành một con trỏ để nhập.