C/C Library

memcmp

memora 2024. 6. 2. 18:45

Index로 돌아가기

 

 

【기  능】 두개의 메모리 블럭을 지정한 바이트수 만큼 비교하는 기능
 
 【소  속】 string.h 
   #include <string.h>
 
 【서  식】  
   int memcmp(const void *buf1, const void *buf2, size_t n);
 
 【설  명】  
   buf1 와 buf2의 선두번지로 부터 n바이트분의 데이터를 비교한다.

   비교는 unsigned char상태로 진행된다.

   도중에 공백문자('\0')가 있어도 무시하고 지정한 만큼 비교한다.
 
 【인  수】  
   buf1 : 비교할 메모리의 선두 어드레스1
   buf2 : 비교할 메모리의 선두 어드레스2
   n : 비교할 바이트 수
 
  【리턴 값】
  1 : buf1 > buf2
  0 : buf1 = buf2
  -1 : buf1 < buf2
 
  【사용 예】
  #include <stdio.h>
  #include <string.h>

  int main(void)
  {
    char buf1[] = "\012345\06789";
    char buf2[] = "\012345\06789";
    char buf3[] = "\012345678\090";
    int   iRetn;

    iRetn = memcmp(buf1, buf2, 12);
    if(iRetn == 0){
         printf("buf 1 == buf2\n");
    }
    else{
         printf("buf 1 != buf2\n");
    }

    iRetn = memcmp(buf1, buf3, 12);
    if(iRetn == 0){
         printf("buf 1 == buf3\n");
    }
    else{
         printf("buf 1 != buf3\n");
    }

    return 0;
  }

  【결   과】
  buf1 == buf2
  buf1 != buf3

Index로 돌아가기

반응형