Tổng Hợp Các Hàm Xử Lý Chuỗi Trong C ++, Xử Lý Chuỗi (String) Trong C

Trang chính | KIẾN THỨC LẬP TRÌNH | C/C++ | Học thức về chuỗi (string) trong C & cách nhập xuất chuỗi trong C.

Bạn đang xem: Hàm giải quyết chuỗi trong ͼ

Chuỗi trong lập trình C

Trong phần này, bạn sẽ được tìm tòi các tri thức liên quan đến string hay chuỗi trong C: cách khai báo, khởi tạo & sử dụng chúng cho các hoạt động vào/ra thông qua các chẳng hạn.

*

Trong lập trình C, chuỗi là một chuỗi các ký tự được chấm dứt bằng ký tự rỗng . Chẳng hạn:

char cvàlt;> = “c string”;

Khi trình biên dịch gặp một chuỗi có các ký tự được đặt trong dấu <> thì theo mặc định, nó sẽ thêm một ký tự rỗng vào cuối.

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

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

char svàlt;5vàgt;;

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

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

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

char cvàlt;> = “abcd”;

char cvàlt;50vàgt; = “abcd”;

char cvàlt;> = {‘a’, ‘b’, ‘c’, ‘d’, ‘ ’};

char cvàlt;5vàgt; = {‘a’, ‘b’, ‘c’, ‘d’, ‘ ’};

Hãy đọc qua 1 chẳng hạn khác:

char cvàlt;5vàgt; = “abcde”;

Trong chẳng hạn này, tôi đã thử gán 6 ký tự (ký tự cuối cùng là ‘ ’) cho mảng char – mảng này chỉ có 5 ký tự. Ngoài ra, mọi thứ đều diễn ra khá tệ & bạn không nên làm những việc cũng giống như thế.

Gán giá trị cho chuỗi

Mảng ký tự trong C & chuỗi ký tự là 2 phần tử đồng hạng hai trong lập trình C. Chúng không suport toán tử gán khi nó được khai báo. Chẳng hạn,

char cvàlt;100vàgt;;

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

Xem Thêm  Restful Api Là Gì Cùng Câu Hỏi Restful Api Là Gì Viblo - viblo là gì

Chú ý, bạn có thể sử dụng hàm strcpy() để copy 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() để đọc một chuỗi.

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

Chẳng hạn 1: dùng hàm scanf() để đọc một chuỗi

#include

int main()

{

char namevàlt;20vàgt;;

printf(“Enter name: “);

scanf(“%s”, name);

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

return 0;

}Đầu raEnter name: Dennis RitchieYour name is Dennis.Dù rằng tôi đã nhập Dennis Ritchie vào lập trình trên nhưng chỉ có “Dennis” là được lưu trữ trong chuỗi name. Bởi vì có một khoảng không phía sau Dennis.

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

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

Chẳng hạn 2: Hàm fgets() & put()

#include

int main()

{

char namevàlt;30vàgt;;

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() để đọ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. Do đó, tôi có thể lấy tối đa 30 ký 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 sử dụng hàm puts(name);.

Lưu ý: Hàm gets() cũng có chức năng lấy đầu vào do người dùng nhập. Tuy nhiên, nó không phải là hàm tiêu chuẩn trong lập trình 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 sẽ dẫn đến tình trạng tràn bộ nhớ đệm.

Xem Thêm  Vòng lặp Python qua một danh sách - python cho vòng lặp qua danh sách

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 tương tự như mảng. Xem chi tiết cách truyền mảng vào hàm tại đây.

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 a function.

return 0;

}

void displayString(char str<>)

{

printf(“String Output: “);

puts(str);

}

Chuỗi và biến pointer

Tương tự như mảng, tên chuỗi cũng được phân rã thành biến pointer. Do đó, bạn có thể sử dụng biến pointer để thực hiện thao tá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à biến pointer trong lập trình C trước khi xem ví dụ dưới đây.

Ví dụ 4: Chuỗi và biến pointer

#include

int main(void) {

char name<> = “Harry Potter”;

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

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

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

char *namePtr;

namePtr = name;

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

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

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

}

Các hàm giải quyết chuỗi hay được dùng

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

Hàm giải quyết chuỗi trong C

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

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

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

Không những thế, bạn cũng sẽ học được cách lấy chuỗi do người dùng nhập vào & thực hiện các thao tác trên chuỗi.

Xem Thêm  Cách tải Album list nhạc phim trên nhaccuatui, zing MP3 nhanh nhất - tải album zing mp3

Bạn phải thường xuyên thao tác trên các chuỗi, tùy vào vào điều cần khắc phục.

Ngoài ra, không phải toàn bộ các thao tác trên chuỗi đều được thực hiện một cách thủ công, bởi vì điều này làm cho lập trình của các bạn trở nên cầu kỳ & “cồng kềnh”.

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

Dưới đây là một số hàm giải quyết chuỗi hay được dùng

HàmChức năng của hàmstrlen()tính độ dài của chuỗistrcpy()copy một chuỗi sang chuỗi khácstrcat()nối 2 chuỗistrcmp()so sánh 2 chuỗistrlwr()chuyển hóa chuỗi sang chữ thườngstrupr()chuyển hóa chuỗi sang chữ in hoa

Các hàm giải quyết chuỗi được xác nhận trong tệp tiêu đề “string.h”.

#include

Chú ý: Bạn phải thêm cả đoạn mã bên dưới để chạy các hàm giải quyết chuỗi.

Hàm gets() & puts()

gets() & puts() là 2 hàm giải quyết chuỗi dùng để lấy đầu vào của chuỗi do người dùng nhập & hiển thị nó một cách riêng rẽ. Bạn có thể xem lại phần Chuỗi trong lập trình C để biết thêm thông tin cụ thể.

#include

int main()

{

char namevàlt;30vàgt;;

printf(“Enter name: “);

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

printf(“Name: “);

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

Xem thêm: Cách Khắc Phục Màn Hình Bị Đen 2 Bên Màu Đen? Màn Hình Máy Tính Bị Thu Nhỏ 2 Bên Màu Đen

return 0;

}

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

Viết một bình luận