memcmp() และ memicmp() เปรียบเทียบ memory block n bytes แรก
ความแตกต่าง
- memcmp() - เปรียบเทียบเป็น unsigned characters (case-sensitive)
- memicmp() - เปรียบเทียบเป็น characters แต่อย่าสนใจ case (case-insensitive)
- ทั้งคู่ return int: 0 = เท่ากัน, >0 = buffer1 มากกว่า, <0 = buffer1 น้อยกว่า
โปรแกรม
#include <stdio.h>
#include <string.h>
#include <mem.h> // สำหรับ memicmp
int check(int x) {
if (x == 0) printf("Buffers hold same data\n");
else if (x > 0) printf("Buffer 1 > Buffer 2\n");
else printf("Buffer 1 < Buffer 2\n");
}
main() {
char st1[] = "This is C Programming language";
char st2[] = "this is c programming";
int result;
result = memcmp(st1, st2, strlen(st2));
printf("1. memcmp: "); check(result);
result = memicmp(st1, st2, strlen(st2));
printf("2. memicmp: "); check(result);
}
ผลลัพธ์
1. memcmp: Buffer 1 < Buffer 2
2. memicmp: Buffers hold same data