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!