# wmemchr

From cppreference.com
< c‎ | string‎ | wide

Defined in header `<wchar.h>` |  |
wchar_t *wmemchr( const wchar_t *ptr, wchar_t ch, size_t count ); |  | (since C95)

Locates the first occurrence of wide character `ch` in the initial `count` wide characters of the wide character array or integer array of compatible type, pointed to by `ptr`.

If `count` is zero, the function returns a null pointer.

### Parameters

ptr | - | pointer to the wide character array to be examined
ch | - | wide character to search for
count | - | number of wide characters to examine

### Return value

Pointer to the location of the wide character, or a null pointer if no such character is found.

### Example

Run this code

    #include <stdio.h>
    #include <wchar.h>
    #include <locale.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);
        }
    }

Possible output:

    Found '许' at position 14

### References

- C11 standard (ISO/IEC 9899:2011):

  - 7.29.4.5.8 The wmemchr function (p: 438)

- C99 standard (ISO/IEC 9899:1999):

  - 7.24.4.5.8 The wmemchr function (p: 384)

### See also

memchr | searches an array for the first occurrence of a character (function)
wcschr (C95) | finds the first occurrence of a wide character in a wide string (function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/string/wide/wmemchr&oldid=96380"