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