모두의 코드
C 언어 레퍼런스 - memchr 함수
작성일 : 2010-08-01
이 글은 13760 번 읽혔습니다.
아직 C 언어와 친숙하지 않다면, 씹어먹는 C 언어 강좌를 보는 것이 어떻까요?
memchr
#include <string.h> // C++ 에서는 <cstring> const void* memchr(const void* ptr, int value, size_t num); void* memchr(void* ptr, int value, size_t num);
메모리 블록에서의 문자를 찾는다.
ptr
이 가리키는 메모리의 처음 num
바이트 중에서 처음으로 value
와 일치하는 값의 주소를 리턴한다.
참고적으로 위에 나타난 두 함수의 원형은 C++ 에서 정의된 방식으로 경우에 따라 오버로딩 되어서 나타난다. C 에서는 함수 오버로딩이 없기 때문에 다음과 같이 하나의 원형만을 가진다.
void *memchr(const void *, int, size_t);
인자
ptr
검색을 수행할 부분의 시작 주소이다.
value
찾을 값으로, int
로 값이 전달되지만 함수 내부적으로는 한 바이트씩 비교하기 때문에 이 값은 unsigned char
로 변환되어 사용된다.
num
검색을 시작한 부분 부터 검색을 수행할 만큼의 바이트 수
리턴값
메모리 블록에서 value
와 일치하는 값이 있다면 그 곳의 주소를 리턴하고 값을 찾지 못한다면 NULL
을 리턴한다.
실행 예제
/* str 에서 처음으로 나타나는 'p' 의 위치를 찾는다. 이 예제는 http://www.cplusplus.com/reference/clibrary/cstring/memchr/ 에서 가져왔습니다. */ #include <stdio.h> #include <string.h> int main() { char* pch; char str[] = "Example string"; pch = (char*)memchr(str, 'p', strlen(str)); if (pch != NULL) printf("'p' found at position %d.\n", pch - str + 1); else printf("'p' not found.\n"); return 0; }
실행 결과
참고 자료
memcmp : 두 메모리 블록을 비교한다.
strchr : 문자열에서 특정한 문자를 검색하되 가장 먼저 나타나는 위치를 구한다.
strrchr :
문자열에서 특정한 문자를 검색하되 가장 마지막에 나타나는 위치를 구한다.
첫
댓글을 달아주세요!
강좌에 관련 없이 궁금한 내용은
여기를 사용해주세요
또는 직접 입력하세요 (댓글 수정시 비밀번호가 필요합니다)
댓글을 불러오는 중입니다..