Ltc 67

     

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à cách nhập xuất chuỗi vào C.

Bạn đang xem: Ltc 67


Chuỗi trong thiết kế C

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

*
*
Trong xây dựng C, chuỗi là 1 trong những chuỗi những ký tự được hoàn thành bằng ký tự rỗng . Ví dụ:

char c<> = “c string”;

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

Làm nắm nào để khai báo chuỗi trong C?

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

char s<5>;

Tôi sẽ khai báo một chuỗi tất cả 5 ký kết tự.

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

Bạn rất có thể khởi sinh sản 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 sang một ví dụ khác:

char c<5> = “abcde”;

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

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

Mảng ký tự trong C và chuỗi ký kết tự là 2 thành phần đồng hạng hai trong lập trình C. Chúng không cung ứng 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 nấu chuỗi trên.

Đọc chuỗi mà người tiêu 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() gọi một chuỗi cam kết tự cho đến khi nó chạm mặt khoảng trắng (dấu cách, cái 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 cho dù tôi đã nhập Dennis Ritchie vào lập trình trên nhưng lại chỉ bao gồm “Dennis” là được tàng trữ trong chuỗi name. Cũng chính vì có một khoảng không phía sau Dennis.

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

Bạn rất có thể sử dụng hàm fgets() để đọc 1 chiếc trong chuỗi. Và sử dụng hàm puts() để hiển thị chuỗi.

Ví dụ 2: Hàm fgets() và 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() để đọ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. Bởi vì đó, tôi rất có thể lấy buổi tối đa 30 cam 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ó tính năng lấy nguồn 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 lập trình C.

Bởi vì chưng hàm gets() được cho phép bạn nhập chuỗi vào C độ dài ký tự tùy ý. Điều này đã dẫn đến tình trạng tràn bộ nhớ lưu trữ đệm.

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

String trong C có thể được truyền vào hàm theo cách tương tự như mảng. Xem cụ thể cách truyền mảng vào hàm tại đây.

Xem thêm: Cách Tạo List Danh Sách Phụ Thuộc Vào List Khác, Hướng Dẫn Tạo Drop

Ví dụ 3: Truyền một chuỗi vào một 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 tung thành trở thành pointer. Vị đó, bạn có thể sử dụng biến đổi pointer để thực hiện làm việc trên các phần tử của chuỗi.

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

Ví dụ 4: Chuỗi và trở thành 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 độ lâu năm của một chuỗistrcpy() – sao chép 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 xử trí chuỗi vào C

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

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

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

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

Tuy nhiên, ko phải toàn bộ các thao tác trên chuỗi phần đa được tiến hành một cách thủ công, cũng chính vì điều này làm cho lập trình của công ty trở nên phức tạp và “cồng kềnh”.

Để giải quyết và xử lý vấn đề này, xây dựng C đã cung cấp một lượng lớn các hàm cách xử lý chuỗi trong thư viện tiêu chuẩn “string.h”.

Dưới đấy là một số hàm cách xử lý chuỗi hay đượ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 sang chuỗi khác
strcat()nối 2 chuỗi
strcmp()so sánh 2 chuỗi
strlwr()chuyển thay đổi chuỗi thanh lịch chữ thường
strupr()chuyển đổi chuỗi sang chữ in hoa

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

#include

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

Hàm gets() và puts()

gets() cùng puts() là 2 hàm cách xử lý chuỗi dùng để mang đầu vào của chuỗi do người dùng nhập và hiển thị nó một bí quyết riêng lẻ. Bạn cũng có thể xem lại phần Chuỗi trong lập trình C để hiểu thêm tin tức chi tiết.

#include

int main()

char name<30>;

printf(“Enter name: “);

gets(name); //Function khổng lồ read string from user.

printf(“Name: “);

puts(name); //Function to display string.

Xem thêm: Cách Định Dạng Tiền Tệ Vnd Trong Excel, Định Dạng Vnd Trong Excel

return 0;

Lưu ý, mặc dù hàm gets() cùng puts() xử lý các chuỗi vào C tuy vậy cả nhì hàm này những được xác định trong tệp tiêu đề “stdio.h”.