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

ความแตกต่าง memcmp() และ memicmp() ในภาษา C

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