Namespaces
Variants

wmemchr

From cppreference.net
< c ‎ | string ‎ | wide
헤더 파일에 정의됨 <wchar.h>
wchar_t * wmemchr ( const wchar_t * ptr, wchar_t ch, size_t count ) ;
(1) (C95부터)
/*QWchar_t*/ * wmemchr ( /*Qwchar_t*/ * ptr, wchar_t ch, size_t count ) ;
(2) (C23부터)
1) ptr 가 가리키는 와이드 문자 배열 또는 호환 가능한 타입의 정수 배열에서, 초기 count 개의 와이드 문자 내에서 와이드 문자 ch 의 첫 번째 발생 위치를 찾습니다.
2) (1) 에 상응하는 타입-제네릭 함수. T 를 한정자 없는 와이드 문자 객체 타입이라고 하자.
  • ptr const T * 타입인 경우, 반환 타입은 const wchar_t * 이다.
  • 그렇지 않고 ptr T * 타입인 경우, 반환 타입은 wchar_t * 이다.
  • 그 외의 경우, 동작은 정의되지 않는다.
이러한 제네릭 함수들의 매크로 정의가 실제 함수에 접근하기 위해 억제된 경우(예: ( wmemchr ) 또는 함수 포인터가 사용된 경우), 실제 함수 선언 (1) 이 보이게 된다.

만약 count 가 0이면, 함수는 널 포인터를 반환합니다.

목차

매개변수

ptr - 검사할 와이드 문자 배열에 대한 포인터
ch - 검색할 와이드 문자
count - 검사할 와이드 문자 수

반환값

와이드 문자의 위치에 대한 포인터, 해당 문자가 발견되지 않으면 널 포인터입니다.

예제

#include <locale.h>
#include <stdio.h>
#include <wchar.h>
int main(void)
{
    wchar_t str[] = L"诺不轻信,故人不负我\0诺不轻许,故我不负人。";
    size_t sz = sizeof str / sizeof *str;
    wchar_t target = L'许';
    wchar_t* result = wmemchr(str, target, sz);
    if (result)
    {
        setlocale(LC_ALL, "en_US.utf8");
        printf("Found '%lc' at position %td\n",target, result - str);
    }
}

가능한 출력:

Found '许' at position 14

참고문헌

  • C23 표준 (ISO/IEC 9899:2024):
  • 7.29.4.5.8 wmemchr 함수 (p: TBD)
  • C17 표준 (ISO/IEC 9899:2018):
  • 7.29.4.5.8 wmemchr 함수 (p: TBD)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.29.4.5.8 wmemchr 함수 (p: 438)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.24.4.5.8 wmemchr 함수 (p: 384)

참고 항목

배열에서 문자의 첫 번째 발생을 검색합니다
(함수)
(C95)
와이드 문자열에서 와이드 문자의 첫 번째 발생을 찾습니다
(함수)