So sánh độ dài chuỗi là một hàm thường được sử dụng trong lập trình C, vì nó có thể cho bạn biết chuỗi nào có nhiều ký tự hơn. Chức năng này rất hữu ích trong việc sắp xếp dữ liệu. So sánh các chuỗi yêu cầu một chức năng đặc biệt; không sử dụng! = hoặc ==.
Bươc chân
Bước 1. Có 2 loại hàm mà bạn có thể sử dụng để so sánh các chuỗi trong ngôn ngữ C
Cả hai chức năng này đều có trong thư viện.
- strcmp (): Hàm này so sánh hai chuỗi và trả về kết quả so sánh số ký tự giữa chúng.
- strncmp (): Hàm này giống như hàm strcmp (), ngoại trừ nó so sánh n} ký tự đầu tiên trong chuỗi. Chức năng này được coi là an toàn hơn vì nó ngăn chương trình bị đơ do quá tải.
Bước 2. Chạy chương trình với các thư viện bạn cần
Chúng tôi khuyên bạn nên chạy và cùng với bất kỳ thư viện nào khác mà bạn cần cho một chương trình cụ thể.
#include #include
Bước 3. Chạy một chức năng
NS. Đây là cách dễ nhất để học hàm này, vì nó trả về giá trị nguyên của phép so sánh số ký tự trong hai chuỗi.
#include #include int main () {}
Bước 4. Xác định hai chuỗi bạn muốn so sánh
Ví dụ, chúng ta sẽ so sánh 2 chuỗi dữ liệu kiểu char đã được xác định trước đó. Bạn cũng có thể xác định giá trị được trả về bởi hàm này để có kiểu dữ liệu là số nguyên.
#include #include int main () {char * str1 = "apple"; char * str2 = "cam"; int ret; }
Bước 5. Thêm chức năng so sánh
Khi bạn đã xác định hai chuỗi đó, bạn có thể thêm một hàm so sánh. Chúng ta sẽ sử dụng hàm strncmp (), vì vậy chúng ta cần đảm bảo rằng số ký tự cần đo được thiết lập trong hàm.
#include #include int main () {char * str1 = "apple"; char * str2 = "cam"; int ret; ret = strncmp (str1, str2, 6); / * Hàm này sẽ so sánh cả '' chuỗi '' gồm 6 ký tự * /}
Bước 6. Sử dụng các câu lệnh
Nếu… Khác để thực hiện so sánh. Sau khi bạn thêm một hàm vào chương trình của mình, bạn có thể sử dụng một câu lệnh để hiển thị chuỗi nào có nhiều ký tự hơn. strncmp () sẽ trả về 0 nếu các chuỗi có cùng số ký tự, một số dương nếu str1 dài hơn và một số âm nếu str2 dài hơn.
#include #include int main () {char * str1 = "apple"; char * str2 = "cam"; int ret; ret = strncmp (str1, str2, 6); if (ret> 0) {printf ("str1 dài hơn"); } else if (ret <0) {printf ("str2 dài hơn"); } else {printf ("Cả hai chuỗi có cùng độ dài"); } return (0); }