memchr
From cppreference.net
|
헤더 파일에 정의됨
<string.h>
|
||
|
void
*
memchr
(
const
void
*
ptr,
int
ch,
size_t
count
)
;
|
(1) | |
|
/*QVoid*/
*
memchr
(
/*QVoid*/
*
ptr,
int
ch,
size_t
count
)
;
|
(2) | (C23 이후) |
1)
(
unsigned
char
)
ch
의 첫 번째 발생을
ptr
가 가리키는 객체의 처음
count
바이트(각각
unsigned
char
로 해석됨) 내에서 찾습니다.
2)
(1)
과 동등한 타입-제네릭 함수.
T
를 한정자가 없는 객체 타입(
void
포함)이라고 하자.
-
-
ptr이 const T * 타입인 경우, 반환 타입은 const void * 이다. -
그렇지 않고
ptr이 T * 타입인 경우, 반환 타입은 void * 이다. - 그 외의 경우, 동작은 정의되지 않는다.
-
배열 검색 범위를 벗어난 접근이 발생하면 동작은 정의되지 않습니다. ptr 이 널 포인터인 경우 동작은 정의되지 않습니다.
|
이 함수는 바이트를 순차적으로 읽고 일치하는 바이트를 찾는 즉시 멈추는 것처럼 동작합니다: ptr 이 가리키는 배열이 count 보다 작지만 배열 내에서 일치 항목이 발견된 경우, 동작은 명확히 정의됩니다. |
(since C11) |
목차 |
매개변수
| ptr | - | 검사할 객체에 대한 포인터 |
| ch | - | 검색할 바이트 |
| count | - | 검사할 최대 바이트 수 |
반환값
해당 바이트의 위치에 대한 포인터, 또는 해당 바이트가 발견되지 않으면 널 포인터.
예제
이 코드 실행
#include <stdio.h> #include <string.h> int main(void) { const char str[] = "ABCDEFG"; const int chars[] = {'D', 'd'}; for (size_t i = 0; i < sizeof chars / (sizeof chars[0]); ++i) { const int c = chars[i]; const char *ps = memchr(str, c, strlen(str)); ps ? printf ("character '%c'(%i) found: %s\n", c, c, ps) : printf ("character '%c'(%i) not found\n", c, c); } return 0; }
가능한 출력:
character 'D'(68) found: DEFG character 'd'(100) not found
참고문헌
- C23 표준 (ISO/IEC 9899:2024):
-
- 7.24.5.1 memchr 함수 (p: TBD)
- C17 표준 (ISO/IEC 9899:2018):
-
- 7.24.5.1 memchr 함수 (p: 267-268)
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.24.5.1 memchr 함수 (p: 367)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.21.5.1 memchr 함수 (p: 330)
- C89/C90 표준 (ISO/IEC 9899:1990):
-
- 4.11.5.1 memchr 함수
참고 항목
|
문자의 첫 번째 발생 위치를 찾습니다
(함수) |
|
|
C++ documentation
for
memchr
|
|