Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Hàm strcoll() trong ngôn ngữ C là gì?


Hàm thư viện C int strcoll(const char *str1, const char *str2) so sánh chuỗi str1 với str2. Kết quả phụ thuộc vào cài đặt LC_COLLATE củalocale.

Mảng các ký tự được gọi là chuỗi.

Khai báo

Khai báo mảng:

char stringname[size];

Ví dụ: char string[50]; chuỗi độ dài 50 ký tự.

Khởi tạo

  • Sử dụng hằng ký tự đơn lẻ:
char string[10] = {'H', 'e', 'l', 'l', 'o', '\0'};
  • Sử dụng hằng chuỗi:
char string[10] = "Hello";

Truy cập - Chuỗi điều khiển "%s" dùng để truy cập chuỗi cho đến khi gặp '\0'.

Hàm strcoll()

Hàm này giống strcmp(), so sánh hai chuỗi và trả về số nguyên dựa trên kết quả so sánh.

Khai báo

int strcoll(const char *string1, const char *string2)

Ở đây:

  • string1: Chuỗi thứ nhất.
  • string2: Chuỗi thứ hai.

Giá trị trả về

  • > 0 khi mã ASCII ký tự đầu không khớp trong string1 lớn hơn string2.
  • < 0 khi mã ASCII ký tự đầu không khớp trong string1 nhỏ hơn string2.
  • = 0 nếu cả hai chuỗi bằng nhau.

Ví dụ 1

Chương trình minh họa strcoll():

#include <stdio.h> 
#include <string.h> 
int main() { 
    char string1[20]; 
    char string2[20]; 
    int final; 
    strcpy(string1, "WELCOME"); 
    strcpy(string2, "Welcome to the world!"); 
    final = strcoll(string1, string2); 
    if (final > 0) { 
        printf("string1 lớn hơn string2"); 
    } else if (final < 0) { 
        printf("string1 nhỏ hơn string2"); 
    } else { 
        printf("string1 và string2 bằng nhau"); 
    } 
    return 0; 
}

Kết quả

string1 nhỏ hơn string2

Ví dụ 2

Chương trình so sánh hai chuỗi dùng strcoll tại runtime:

#include <stdio.h> 
int main() { 
    char string1[20]; 
    char string2[20]; 
    int final; 
    printf("Nhập string1:\n"); 
    gets(string1); 
    printf("Nhập string2:\n"); 
    gets(string2); 
    final = strcoll(string1, string2); 
    if (final > 0) { 
        printf("string1 lớn hơn string2"); 
    } else if (final < 0) { 
        printf("string1 nhỏ hơn string2"); 
    } else { 
        printf("string1 và string2 bằng nhau"); 
    } 
    return 0; 
}

Kết quả

Nhập string1: Tutorails Point 
Nhập string2: Point 
string1 lớn hơn string2