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

Khác biệt giữa strncmp() và strcmp() trong C/C++


strncmp() và strcmp() so sánh hai chuỗi dựa trên mã ASCII. strncmp nhận thêm một tham số là số ký tự tối đa để so sánh. Điều này rất hữu ích khi chuỗi không hợp lệ (không kết thúc bằng null), vì strcmp sẽ không thể hoàn thành thao tác (vì nó tìm ký tự kết thúc '\0'). strncmp dùng số ký tự để kết thúc, do đó an toàn hơn.

Ví dụ

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "TutorialsPoint";
    char str2[] = "Tutorials";

    // So sánh với strncmp() - 9 ký tự đầu
    int result1 = strncmp(str1, str2, 9);
    if (result1 == 0) {
        printf("str1 == str2 voi 9 ky tu dau!\n");
    }

    // So sánh với strcmp()
    int result2 = strcmp(str1, str2);
    if (result2 == 0) {
        printf("str1 == str2!\n");
    } else {
        if (result2 > 0)
            printf("str1 > str2!\n");
        else
            printf("str1 < str2!\n");
    }
    return 0;
}

Kết quả đầu ra

str1 == str2 voi 9 ky tu dau!
str1 > str2!