Chuỗi Ký Tự C++

     

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

Bạn đang xem: Chuỗi ký tự c++


Chuỗi trong xây dựng C

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

*
*
Trong lập trình sẵn C, chuỗi là 1 trong những chuỗi những ký từ được xong bằng cam kết tự trống rỗng . Ví dụ:

char c<> = “c string”;

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

Làm núm nào để khai báo chuỗi vào C?

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

char s<5>;

Tôi đang khai báo một chuỗi gồm 5 cam kết tự.

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

Bạn có thể khởi tạo chuỗi theo các 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 ví dụ như này, tôi đã từng gán 6 ký tự (ký tự ở đầu cuối là ‘’) đến mảng char – mảng này chỉ tất cả 5 ký kết tự. Tuy nhiên, đông đảo thứ đều ra mắt khá tệ với bạn kiêng kị những việc tương tự 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 thành phần đồng hạng nhì trong xây dựng C. Chúng không hỗ trợ 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 ý, bạn cũng có thể sử dụng hàm strcpy() để xào nấu chuỗi trên.

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

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

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

Ví dụ 1: cần sử dụng hàm scanf() nhằm đọ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 xây dựng trên tuy thế chỉ tất cả “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 nỗ lực nào nhằm đọc một chiếc văn bản?

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

Ví dụ 2: Hàm fgets() với 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 sử 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. Do đó, tôi hoàn toàn có thể lấy tối đa 30 cam kết tự làm đầu vào và cũng đó là kích thước của chuỗi name.

Để in chuỗi, tôi thực hiện 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 phải là hàm tiêu chuẩn chỉnh trong thiết kế C.

Bởi vị hàm gets() cho phép bạn nhập chuỗi trong 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ựa như như mảng. Xem cụ thể cách truyền mảng vào hàm tại đây.

Xem thêm: Bài 4 Trang 90 Sgk Hình 12, Giải Bài 4 Trang 90 Sgk Hình Học 12

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

#include

void displayString(char str<>);

int main()

char str<50>;

printf(“Enter string: “);

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

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

return 0;

void displayString(char str<>)

printf(“String Output: “);

puts(str);

Chuỗi và đổi thay pointer

Tương trường đoản cú như mảng, thương hiệu chuỗi cũng rất được phân tan thành đổi mới pointer. Bởi đó, bạn cũng có thể sử dụng biến hóa pointer để thực hiện thao tác làm việc trên các phần tử của chuỗi.

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

Ví dụ 4: Chuỗi và đổi mới 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 thường được sử dụng

strlen() – tính độ nhiều năm của một chuỗistrcpy() – sao chép từ một chuỗi lịch sự chuỗi khácstrcmp() – đối chiếu 2 chuỗistrcat() – nối 2 chuỗi

Hàm giải pháp xử lý chuỗi trong C

Thao tác bên trên chuỗi trong xây dựng C bằng phương pháp sử dụng những hàm thư viện.

Trong phần này, các bạn sẽ được học tập về cách làm việc trên chuỗi trong lập trình 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 biến thành học được biện pháp lấy chuỗi do người tiêu dùng nhập vào và tiến hành các làm việc trên chuỗi.

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

Tuy nhiên, không phải toàn bộ các thao tác làm việc trên chuỗi đầy đủ được tiến hành một phương pháp thủ công, chính vì điều này để cho lập trình của người sử dụng trở nên tinh vi và “cồng kềnh”.

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

Dưới đó là một số hàm giải pháp xử lý chuỗi hay được sử dụng

HàmChức năng của hàm
strlen()tính độ dài 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 đổi chuỗi sang chữ thường
strupr()chuyển đổi chuỗi thanh lịch chữ in hoa

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

#include

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

Hàm gets() với puts()

gets() với puts() là 2 hàm cách xử lý chuỗi dùng để mang đầu vào của chuỗi do người tiêu dùng nhập với hiển thị nó một cách riêng lẻ. Bạn cũng có thể xem lại phần Chuỗi trong lập trình sẵn 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 lớn read string from user.

printf(“Name: “);

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

Xem thêm: Xem Phim Gió Làng Kình Tập 1, Gió Làng Kình Tap 1 Phim Nông Việt Nam

return 0;

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