Hướng dẫn so sánh 2 chuỗi trong C - với ví dụ dễ hiểu

Để so sánh hai chuỗi trong C, bạn có thể sử dụng hàm strcmp trong thư viện cstring.

Hàm strcmp có cú pháp như sau:

int strcmp(const char *str1, const char *str2);

Trong đó:

  • str1 là chuỗi thứ nhất cần so sánh.
  • str2 là chuỗi thứ hai cần so sánh.

Hàm sẽ trả về giá trị sau:

  • Nếu str1 là chuỗi lớn hơn str2, hàm sẽ trả về một số dương.
  • Nếu str1 là chuỗi bằng str2, hàm sẽ trả về 0.
  • Nếu str1 là chuỗi nhỏ hơn str2, hàm sẽ trả về một số âm.

Ví dụ:

#include 
#include 

int main(void) {
    char str1[] = "hello";
    char str2[] = "world";
    char str3[] = "hello";

    printf("strcmp(str1, str2) = %d\n", strcmp(str1, str2));
    printf("strcmp(str1, str3) = %d\n", strcmp(str1, str3));
    printf("strcmp(str2, str3) = %d\n", strcmp(str2, str3));

    return 0;
}

Kết quả in ra màn hình sẽ là:

strcmp(str1, str2) = -15
strcmp(str1, str3) = 0
strcmp(str2, str3) = 15

Lưu ý: Hàm strcmp so sánh hai chuỗi theo thứ tự từ A-Z. Nếu bạn muốn so sánh hai chuỗi theo thứ tự từ Z-A, bạn có thể sử dụng hàm strcmp với hai chuỗi đã được đảo ngược