CHUỖI KÝ TỰ C++
Trang nhà | KIẾN THỨC LẬP TRÌNH | C/C++ | Kiến thức về chuỗi (string) trong C và phương pháp nhập xuất chuỗi trong C.
Bạn đang xem: Chuỗi ký tự c++
Chuỗi trong lập trình C
Trong phần này, bạn sẽ được tò mò các kỹ năng và kiến thức liên quan đến string tốt chuỗi vào C: phương pháp khai báo, khởi sinh sản và áp dụng chúng mang đến các chuyển động vào/ra trải qua các ví dụ.


char c<> = “c string”;
Khi trình biên dịch gặp một chuỗi có những ký trường đoản cú được đặt trong dấu <> thì theo mang định, nó vẫn thêm một ký tự rỗng vào cuối.
Làm nỗ lực 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 vẫn khai báo một chuỗi gồm 5 ký kết tự.
Cách khởi chế tạo ra chuỗi
Bạn có thể khởi tạo thành 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 một ví dụ khác:
char c<5> = “abcde”;
Trong lấy ví dụ như này, tôi đã từng gán 6 ký kết tự (ký tự sau cuối là ‘ ’) cho mảng char – mảng này chỉ có 5 cam kết tự. Tuy nhiên, đều thứ đều diễn ra khá tệ và bạn cấm kị những việc tương tự như thế.
Gán giá chỉ trị cho chuỗi
Mảng cam kết tự vào C và chuỗi ký kết tự là 2 bộ phận đồng hạng hai trong lập trình sẵn C. Bọn chúng không cung ứng toán tử gán lúc 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ũng có thể sử dụng hàm strcpy() để sao chép 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() nhằm đọc một chuỗi.
Hàm scanf() hiểu một chuỗi cam kết tự cho đến khi nó gặp khoảng trắng (dấu cách, chiếc 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 sẽ nhập Dennis Ritchie vào xây dựng trên cơ mà chỉ tất cả “Dennis” là được tàng trữ trong chuỗi name. Chính vì có một khoảng không phía sau Dennis.
Làm nắm nào nhằm đọc một mẫu văn bản?
Bạn có thể sử dụng hàm fgets() nhằm đọc 1 loại trong chuỗi. Và áp dụng hàm puts() nhằm 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() nhằm đọc một chuỗi do người dùng nhập vào.fgets(name, sizeof(name), stdlin); // read string
Kết quả sizeof(name) là 30. Vày đó, tôi rất có thể lấy về tối đa 30 cam kết tự làm nguồn 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ó tác dụng lấy đầu vào do người dùng nhập. Tuy nhiên, nó chưa phải là hàm tiêu chuẩn trong thiết kế C.
Bởi vị hàm gets() cho phép bạn nhập chuỗi trong C độ dài cam kết tự tùy ý. Điều này vẫn dẫn mang đế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 trong C
String vào C có thể được truyền vào hàm theo cách tương tự như mảng. Xem chi tiết cách truyền mảng vào hàm tại đây.
Xem thêm: Soạn Ngữ Văn 9 Bếp Lửa - Soạn Bài Bếp Lửa (Trang 143)
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 khổng lồ a function.
return 0;
void displayString(char str<>)
printf(“String Output: “);
puts(str);
Chuỗi và biến đổi pointer
Tương từ bỏ như mảng, thương hiệu chuỗi cũng được phân chảy thành vươn lên là pointer. Vị đó, bạn có thể sử dụng thay đổi pointer nhằm thực hiện thao tá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à thay đổi pointer trong lập trình sẵn 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 xử lý chuỗi hay được sử dụng
strlen() – tính độ dài của một chuỗistrcpy() – xào nấu từ một chuỗi thanh lịch chuỗi khácstrcmp() – so sánh 2 chuỗistrcat() – nối 2 chuỗiHàm xử trí chuỗi vào C
Thao tác trên chuỗi trong lập trình C bằng cách sử dụng các hàm thư viện.
Trong phần này, các bạn sẽ được học về cách thao tác làm việc trên chuỗi trong lập trình sẵn 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 sẽ học được bí quyết lấy chuỗi do người dùng nhập vào và thực hiện các làm việc trên chuỗi.
Bạn yêu cầu thường xuyên làm việc trên các chuỗi, tùy thuộc vào việc cần giải quyết.
Tuy nhiên, không phải tất cả các làm việc trên chuỗi đều được triển khai một cách thủ công, bởi vì điều này làm cho lập trình của bạn trở nên phức hợp và “cồng kềnh”.
Để xử lý vấn đề này, lập trình 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 chỉnh “string.h”.
Dưới đây là một số hàm giải pháp xử lý chuỗi thường xuyên được sử dụng
Hàm | Chứ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 đổi chuỗi sang chữ thường |
strupr() | chuyển đổi chuỗi lịch sự chữ in hoa |
Các hàm cách xử trí chuỗi được xác minh trong tệp title “string.h”.
#include
Lưu ý: chúng ta phải thêm cả đoạn mã bên dưới để chạy những hàm giải pháp xử lý chuỗi.
Hàm gets() với puts()
gets() cùng puts() là 2 hàm cách xử trí 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 lập trình C để biết thêm thông tin 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 khổng lồ display string.
Xem thêm: Looking Back Trang 46 Unit 10 Tiếng Anh 7 Tập 2 Trang 46 Unit 10 Tiếng Anh 7 Mới
return 0;
Lưu ý, tuy nhiên hàm gets() với puts() xử lý các chuỗi trong C nhưng mà cả hai hàm này đa số được khẳng định trong tệp title “stdio.h”.