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

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


Hàm thư viện C int strcmp(const char *str1, const char *str2) so sánh chuỗi trỏ bởi str1 với chuỗi trỏ bởi str2.

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 strcmp()

  • Hàm này so sánh hai chuỗi.
  • Trả về hiệu mã ASCII của hai ký tự đầu tiên không khớp trong cả hai chuỗi.

So sánh chuỗi

Cú pháp:

int strcmp(string1, string2);

Nếu hiệu = 0 ------ string1 = string2

Nếu hiệu dương ------- string1 > string2

Nếu hiệu âm ------- string1 < string2

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

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

Chương trình ví dụ

Chương trình sau minh họa sử dụng strcmp():

#include <stdio.h> 
main() { 
    char a[50], b[50]; 
    int d; 
    printf("Nhập 2 chuỗi:\n"); 
    scanf("%s %s", a, b); 
    d = strcmp(a, b); 
    if (d == 0) 
        printf("%s bằng %s", a, b); 
    else if (d > 0) 
        printf("%s lớn hơn %s", a, b); 
    else if (d < 0) 
        printf("%s nhỏ hơn %s", a, b); 
}

Kết quả

Nhập 2 chuỗi: bhanu priya 
bhanu nhỏ hơn priya

Ví dụ khác so sánh hai chuỗi dùng strcmp:

#include <stdio.h> 
#include <string.h> 
void main() { 
    char string1[25], string2[25]; 
    int value; 
    printf("Nhập chuỗi 1: "); 
    gets(string1); 
    printf("Nhập chuỗi 2: "); 
    gets(string2); 
    value = strcmp(string1, string2); 
    if (value == 0) { 
        printf("%s giống %s", string1, string2); 
    } else if (value > 0) { 
        printf("%s lớn hơn %s", string1, string2); 
    } else { 
        printf("%s nhỏ hơn %s", string1, string2); 
    } 
}

Kết quả

Nhập chuỗi 1: Tutorials 
Nhập chuỗi 2: Point 
Tutorials lớn hơn Point