C언어/string.h

[C언어] memchr 함수 (버퍼에서 문자 검색)

아무일도없었다 2022. 12. 22. 15:52

사용범위

Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수

기능

C언어 표준 함수로 버퍼 범위에서 특정 문자의 첫 번째 위치를 찾을 때 사용한다.

헤더

#include <string.h>

※ memchr 함수 사용 시 string.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※


함수

void *memcpy(const void *buf, int val, size_t count);

파라미터

  • const void *buf
    • 특정 문자를 검색할 버퍼를 입력한다.
  • int val
    • 버퍼에서 검색할 문자를 입력한다.
  • size_t count
    • 검색할 버퍼의 범위를 byte 단위로 입력한다.

반환값

문자(val) 을 찾은 경우            문자열에서 val 의 첫 번째 위치의 포인터를 반환
문자(val) 을 찾지 못한 경우    NULL 을 반환

 

<소스 코드>

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

int main() {
    char buffer[] = "memchr example source code";
    char find_chr = 'm';
    char *tmp = NULL;
    char *ret = NULL;

    tmp = buffer;

    do {
        ret = memchr(tmp, find_chr, 7);
        if(ret) {
            printf("ret(%p) : [%s]\n", ret, ret);
        }
        // next char
        tmp = ret + 1;
    } while(ret);

    return 0;
}

(buffer 의 7 byte 범위에서 문자 'm' 을 순차적으로 검색)

 

※ 실행 결과

ret(000000000061FDB0) : [memchr example source code]
ret(000000000061FDB2) : [mchr example source code]

 

반응형