Programming/C C++
아래 함수사용을 위해서는 string.h Header File선언이 필요합니다.

 함수  사용  설명
 memchr()  p = memchr(p1, c1, ib);  s1이 지시하고 있는 memory영역의 data중 c1에 해당하는 문자를 ib(byte단위)단위로 검색하고 검색된 위치부터의 memory주소를 pointer로 반환합니다.
 memcmp()  i - memcmp(p1, p2, ib);  s1과 s2가 지시하고 있는 memory영역의 data를 ib(byte단위)만큼 비교하고 같으면 0을 반환합니다.

각 함수의 인수에서 p1, p2는 Memory시작주소를 갖고 있는 Pointer입니다. c1은 문자단위 인수이며 ib는 정수형태의 인수를 의미합니다.

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

main()
{
  char s[12];
  char *p;
 
  strcpy(s, "hello!world");
 
  printf("%s\n", s);
 
  p = memchr(s, '!', 8);
 
  printf("%s\n", p);
}


memchr()함수를 통해 s의 Memory영역을 8Byte단위로 검색하여 '!'를 찾습니다. 만일 검색에 성공하면 '!'가 위치하는 주소값을 Pointer p에 반환합니다.(검색한 결과가 없으면 Null이 반환됩니다.)


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

main()
{
  char s1[5] = "abcde";
  char s2[6] = "abcde";
 
  printf("%d\n", memcmp(s1, s2, 5));
 
  strcpy(s1, "aacde");
 
  printf("%d\n", memcmp(s1, s2, 5));
 
  strcpy(s2, "aaade");
 
  printf("%d\n", memcmp(s1, s2, 5));
}


memcmp()함수를 세번 비교하여 각각의 결과값을 확인하고 있습니다.


결과에서 보듯이 두 인수가 같으면 0을 반환하지만 만일 s1(왼쪽)이 더 크면 1을 s2(오른쪽)가 더 크면 -1을 반환합니다.

'Programming > C C++' 카테고리의 다른 글

[Visual C++] C++ 기본 형태  (0) 2012.06.22
[Visual C++] 관련 라이브러리  (0) 2012.06.21
표준 Library 함수 - Memory 관련 함수  (0) 2011.06.16
[C, C++] Class구현시 생성자와 소멸자 활용  (0) 2011.06.01
[C, C++] Class  (0) 2011.05.25
[C, C++] cout 서식지정  (0) 2011.04.14
0 0