반응형
memrchr(3)
#include <string.h>
void *memrchr(const void *s, int c, size_t n);
memrchr(3)은 s 메모리 시작영역에서 n 바이트 사이에서 문자 c를 역순으로 처음 찾은 위치(pointer)를 return 합니다.
c의 값은 unsigned char 로 type casting한 것과 같습니다.(즉, 하위 1바이트만 유효) gcc(GNU)에서 추가된 함수이므로 일반 UNIX에서는 사용할 수 없습니다.
파라미터
s
- 데이터를 찾을 범위의 시작 위치
c
- 찾을 데이터 값(unsigned char)
n
- s로 부터 찾을 범위에 대한 크기(byte수)
RETURN
NULL
- s에서 n바이트까지 뒤에서 부터 검색한 결과 c문자를 발견하지 못하였습니다.
NULL이 아님
- s에서 n바이트까지 뒤에서 부터 검색한 결과 처음으로 c문자를 발견한 위치(pointer)
대체 함수
Sample : memrchr(3)이 제공하지 않는 일반 UNIX에서 사용할 수 있는 함수
void *memrchr(const void *s, int c, size_t n)
{
char *ptr = (char *)s + n - 1;
do {
if(*ptr == (char)c) {
return ptr;
}
ptr--;
} while(s <= ptr);
return NULL;
}
반응형
'C언어 header > string.h' 카테고리의 다른 글
strncpy(3) - 문자열 n바이트 복사하기 (0) | 2019.09.25 |
---|---|
strcpy(3) - 문자열끝까지 복사하기 (0) | 2019.09.25 |
memchr(3) - 1바이트의 데이터 찾기 (0) | 2019.09.25 |
memcmp(3) - 두 메모리 영역의 데이터 비교 (2) | 2019.09.25 |
memccpy(3) - memory 영역간 데이터 복제(특정 문자까지) (0) | 2019.09.25 |