Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ความแตกต่างระหว่าง strncmp() และ strcmp() ใน C/C++

strncmp() และ strcmp() เปรียบเทียบสตริงสองตัวโดยใช้การเปรียบเทียบอักขระ ASCII strncmp() รับพารามิเตอร์เพิ่มเติมหนึ่งตัวคือจำนวนอักขระที่จะเปรียบเทียบ มีประโยชน์มาก เพราะถ้าสตริงไม่ถูกต้อง strcmp() จะไม่สามารถดำเนินการได้ strcmp() ค้นหาตัวอักษรจบสตริง ('\0') ที่ท้ายสตริงเพื่อจบการทำงาน ในขณะที่ strncmp() ใช้จำนวนอักขระในการจบการทำงาน จึงปลอดภัยกว่า

ตัวอย่าง

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

int main() {
    char str1[] = "TutorialsPoint";
    char str2[] = "Tutorials";
    // Compare strings with strncmp()
    int result1 = strncmp(str1, str2, 9);
    if (result1 == 0) {
        printf("str1 == str2 upto 9 characters!\n");
    }
    // Compare strings using 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;
}

เอาต์พุต

str1 == str2 upto 9 characters!
str1 > str2!