Bài 57. Các hàm trong thư viện string.h

11
80863
Các Hàm Trong Thư Viện String
This entry is part [part not set] of 69 in the series Học C Không Khó

Buổi trước chúng ta vừa cùng nhau đi tìm hiểu về chuỗi trong C. Buổi hôm nay Lập trình không khó sẽ cùng các bạn đi tìm hiểu một thư viện hỗ trợ rất nhiều hàm để làm việc với chuỗi – đó là thư viện string.h, và chúng ta sẽ cùng nhau đi tìm hiểu lần lượt các hàm trong thư viện string.h nhé.

Thư viện string.h trong C

Đây là thư viện cung cấp rất nhiều hàm hữu ích giúp các bạn thuận tiện để làm việc với chuỗi. Để sử dụng các đoạn code trong bài viết này, bạn vui lòng thêm thư viện sau:

Ngay sau đây, chúng ta sẽ cùng làm quen với các hàm trong thư viện string.h được sử dụng phổ biến nhé.

Các hàm trong thư viện string.h

Mình sẽ đi qua từng hàm, và mỗi hàm đều sẽ có những ví dụ cụ thể cho bạn.

Hàm strlen – hàm lấy chiều dài chuỗi

Vai trò: Hàm strlen trong thư viện string.h cung cấp cho bạn độ dài của chuỗi mà nó đang lưu.

Ví dụ:

Lưu ý:

  • Chúng ta cần lấy strlen(s) - 1 là do hàm fgets() đọc cả ký tự ‘\n’. Nếu bạn dùng hàm gets() thì không cần bớt đi 1 đơn vị. Nhưng chúng ta không nên dùng hàm gets() -> lý do ở đây.

Hàm strcmp – hàm so sánh 2 chuỗi

Trong ngôn ngữ C, bạn không thể dùng dấu == để so sánh 2 chuỗi. Lý do là bởi khi bạn truy xuất tên chuỗi thì thực tế là bạn đang truy xuất tới địa chỉ của nó chứ không phải giá trị. Xem ví dụ sau:

Kết quả chạy:

Bạn thấy đấy, đây là 2 địa chỉ khác nhau. Do đó, nếu bạn dùng == để so sánh thì bạn đang so sánh 2 địa chỉ chứ không phải cái bạn mong muốn đâu. Đó là lý do chúng ta cần hàm strcmp().

Giá trị trả về của hàm này bạn xem trong bảng dưới đây:

Giá trị trả về Giải thích
một số nguyên < 0 Khi ký tự đầu tiên của 2 chuỗi không giống nhau và ký tự này ở chuỗi str1 có giá trị nhỏ hơn ở chuỗi str2
giá trị 0 hai chuỗi giống nhau
một số nguyên > 0 Khi ký tự đầu tiên của 2 chuỗi không giống nhau và ký tự này ở chuỗi str1 có giá trị lớn hơn ở chuỗi str2

Xem ví dụ sau đây:

Kết quả chạy:

Hàm strcat – hàm nối chuỗi

Vai trò: Ghép chuỗi chuỗi nguồn vào phía sau chuỗi đích.

Kết quả chạy:

Hàm strcpy – hàm copy chuỗi

Vai trò: Copy giá trị của chuỗi nguồn và lưu vào chuỗi đích. Bạn cần dùng hàm này khi muốn gán giá trị của chuỗi này cho chuỗi khác thay vì sử dụng dấu = nhé.

Kết quả chạy:

Hàm strlwr – Đưa chuỗi về dạng lowercase

Xem ví dụ sau đây:

Kết quả:

Hàm strupr – đưa chuỗi về dạng uppercase

Xem ví dụ sau:

Kết quả:

Hàm strrev – hàm đảo ngược chuỗi

Công dụng: Đảo ngược chuỗi trong C

Kết quả:

Hàm strchr – Trả về vị trí đầu tiên của ký tự cần tìm

Hàm này trả về con trỏ trỏ tới vị trí xuất hiện đầu tiên của ký tự c. Còn hàm thì trả về vị trí cuối cùng. Nếu không tồn tại, trả về con trỏ NULL.

Kết quả:

Hàm strstr – hàm tìm chuỗi con trong chuỗi

Hàm này tìm kiếm sự xuất hiện của chuỗi con sub trong chuỗi str. Nếu không tìm thấy thì trả về con trỏ NULL. Nếu tìm thấy thì trả về con trỏ trỏ tới vị trí tìm thấy.

Kết quả chạy:

Tại sao lại là “khong kho”? Bởi vì chữ “khong” có chữ “kho”.

Trên đây là các hàm trong thư viện string.h sử dụng nhiều. Bạn có thể xem đầy đủ các hàm của thư viện string.h ở link trong tài liệu tham khảo.

Tài liệu tham khảo

  1. https://en.cppreference.com/w/cpp/header/cstring
Subscribe
Notify of
guest
11 Bình luận
Inline Feedbacks
View all comments