Cách khai báo chuỗi trong c và các kiến thức liên quan

     

Trang công ty | KIẾN THỨC LẬP TRÌNH | C/C++ | Kiến thức về chuỗi (string) trong C và giải pháp nhập xuất chuỗi vào C.

Bạn đang xem: Cách khai báo chuỗi trong c và các kiến thức liên quan


Chuỗi trong thiết kế C

Trong phần này, các bạn sẽ được khám phá các kỹ năng và kiến thức liên quan mang lại string tuyệt chuỗi trong C: bí quyết khai báo, khởi tạo nên và áp dụng chúng cho các hoạt động vào/ra trải qua các ví dụ.

*
*
Trong lập trình C, chuỗi là 1 chuỗi các ký tự được hoàn thành bằng cam kết tự rỗng . Ví dụ:

char c<> = “c string”;

Khi trình biên dịch gặp gỡ một chuỗi có những ký từ được để trong vết <> thì theo mang định, nó đang thêm một ký tự trống rỗng vào cuối.

Làm nắm nào nhằm khai báo chuỗi vào C?

Dưới đó là cách khai báo chuỗi ký kết tự vào C:

char s<5>;

Tôi đã khai báo một chuỗi bao gồm 5 ký tự.

Cách khởi chế tạo ra chuỗi

Bạn rất có thể khởi chế tạo ra chuỗi theo những cách sau đây:

char c<> = “abcd”;

char c<50> = “abcd”;

char c<> = ‘a’, ‘b’, ‘c’, ‘d’, ‘’;

char c<5> = ‘a’, ‘b’, ‘c’, ‘d’, ‘’;

Hãy xem qua 1 ví dụ khác:

char c<5> = “abcde”;

Trong lấy ví dụ này, tôi đã thử gán 6 ký kết tự (ký tự cuối cùng là ‘’) cho mảng char – mảng này chỉ có 5 cam kết tự. Mặc dù nhiên, hồ hết thứ đều diễn ra khá tệ và bạn cấm kị những việc tựa như như thế.

Gán giá chỉ trị đến chuỗi

Mảng cam kết tự trong C và chuỗi cam kết tự là 2 bộ phận đồng hạng nhì trong lập trình C. Bọn chúng không cung cấp toán tử gán khi nó được khai báo. Ví dụ,

char c<100>;

c = “C programming”; // Error! array type is not assignable.

Lưu ý, chúng ta có thể sử dụng hàm strcpy() để xào luộc chuỗi trên.

Đọc chuỗi mà người dùng nhập vào

Bạn rất có thể sử dụng hàm scanf() để đọc một chuỗi.

Hàm scanf() đọc một chuỗi ký kết tự cho tới khi nó chạm mặt khoảng trắng (dấu cách, dòng mới, tab,…)

Ví dụ 1: dùng hàm scanf() để đọc một chuỗi

#include

int main()

char name<20>;

printf(“Enter name: “);

scanf(“%s”, name);

printf(“Your name is %s.”, name);

return 0;

Đầu raEnter name: Dennis RitchieYour name is Dennis.Mặc mặc dù tôi vẫn nhập Dennis Ritchie vào thiết kế trên dẫu vậy chỉ tất cả “Dennis” là được tàng trữ trong chuỗi name. Chính vì có một không gian phía sau Dennis.

Làm nỗ lực nào để đọc một mẫu văn bản?

Bạn có thể sử dụng hàm fgets() nhằm đọc 1 dòng trong chuỗi. Và sử dụng hàm puts() để hiển thị chuỗi.

Ví dụ 2: Hàm fgets() cùng put()

#include

int main()

char name<30>;

printf(“Enter name: “);

fgets(name, sizeof(name), stdin); // read string

printf(“Name: “);

puts(name); // display string

return 0;

Đầu raEnter name: Tom HanksName: Tom Hanks

Dưới đây, tôi áp dụng hàm fgets() nhằm đọc một chuỗi do người tiêu dùng nhập vào.fgets(name, sizeof(name), stdlin); // read string

Kết trái sizeof(name) là 30. Vì đó, tôi có thể lấy về tối đa 30 ký kết tự làm đầu vào và cũng chính là kích thước của chuỗi name.

Để in chuỗi, tôi áp dụng hàm puts(name);.

Lưu ý: Hàm gets() cũng có công dụng lấy đầu vào do người tiêu dùng nhập. Mặc dù nhiên, nó không hẳn là hàm tiêu chuẩn chỉnh trong thiết kế C.

Bởi vày hàm gets() có thể chấp nhận được bạn nhập chuỗi vào C độ dài ký kết tự tùy ý. Điều này sẽ dẫn đến tình trạng tràn bộ nhớ đệm.

Truyền chuỗi vào hàm nhập chuỗi trong C

String trong C có thể được truyền vào hàm theo cách giống như như mảng. Xem chi tiết cách truyền mảng vào hàm trên đây.

Xem thêm: Những Câu Tục Ngữ Về Tình Bạn, Ca Dao Nói Về Tình Bạn Hay Và Ý Nghĩa

Ví dụ 3: Truyền một chuỗi vào trong 1 hàm

#include

void displayString(char str<>);

int main()

char str<50>;

printf(“Enter string: “);

fgets(str, sizeof(str), stdin);

displayString(str); // Passing string to lớn a function.

return 0;

void displayString(char str<>)

printf(“String Output: “);

puts(str);

Chuỗi và biến hóa pointer

Tương từ như mảng, tên chuỗi cũng được phân tan thành vươn lên là pointer. Vày đó, chúng ta cũng có thể sử dụng biến đổi pointer nhằm thực hiện làm việc trên các thành phần của chuỗi.

Tôi nghĩ là bạn nên xem lại phần mảng và trở thành pointer trong xây dựng C trước lúc xem ví dụ bên dưới đây.

Ví dụ 4: Chuỗi và trở nên pointer

#include

int main(void)

char name<> = “Harry Potter”;

printf(“%c”, *name); // Output: H

printf(“%c”, *(name+1)); // Output: a

printf(“%c”, *(name+7)); // Output: o

char *namePtr;

namePtr = name;

printf(“%c”, *namePtr); // Output: H

printf(“%c”, *(namePtr+1)); // Output: a

printf(“%c”, *(namePtr+7)); // Output: o

Các hàm cách xử trí chuỗi hay được sử dụng

strlen() – tính độ dài của một chuỗistrcpy() – xào luộc từ một chuỗi sang trọng chuỗi khácstrcmp() – so sánh 2 chuỗistrcat() – nối 2 chuỗi

Hàm cách xử trí chuỗi trong C

Thao tác bên trên chuỗi trong lập trình C bằng phương pháp sử dụng các hàm thư viện.

Trong phần này, các bạn sẽ được học tập về cách thao tác trên chuỗi trong xây dựng C bằng cách sử dụng các hàm tiêu chuẩn như gets(), puts, strlen(),…

Bên cạnh đó, bạn cũng sẽ học được giải pháp lấy chuỗi do người tiêu dùng nhập vào và thực hiện các thao tác làm việc trên chuỗi.

Bạn nên thường xuyên làm việc trên những chuỗi, tùy thuộc vào vấn đề cần giải quyết.

Tuy nhiên, không phải toàn bộ các làm việc trên chuỗi hồ hết được thực hiện một phương pháp thủ công, bởi vì điều này khiến cho lập trình của khách hàng trở nên phức tạp và “cồng kềnh”.

Để xử lý vấn đề này, lập trình sẵn C đã hỗ trợ một lượng lớn các hàm xử lý chuỗi trong tủ sách tiêu chuẩn “string.h”.

Dưới đó là một số hàm cách xử trí chuỗi thường được sử dụng

HàmChức năng của hàm
strlen()tính độ lâu năm của chuỗi
strcpy()sao chép một chuỗi quý phái chuỗi khác
strcat()nối 2 chuỗi
strcmp()so sánh 2 chuỗi
strlwr()chuyển thay đổi chuỗi quý phái chữ thường
strupr()chuyển thay đổi chuỗi thanh lịch chữ in hoa

Các hàm xử trí chuỗi được xác minh trong tệp title “string.h”.

#include

Lưu ý: bạn phải thêm cả đoạn mã dưới để chạy những hàm cách xử lý chuỗi.

Hàm gets() và puts()

gets() và puts() là 2 hàm xử lý chuỗi dùng để lấy đầu vào của chuỗi do người tiêu dùng nhập với hiển thị nó một giải pháp riêng lẻ. Chúng ta cũng có thể xem lại phần Chuỗi trong xây dựng C để tìm hiểu thêm thông tin chi tiết.

#include

int main()

char name<30>;

printf(“Enter name: “);

gets(name); //Function to lớn read string from user.

printf(“Name: “);

puts(name); //Function lớn display string.

return 0;

Lưu ý, tuy nhiên hàm gets() và puts() xử lý những chuỗi trong C mà lại cả nhị hàm này đầy đủ được khẳng định trong tệp title “stdio.h”.

qqlive| j88