# std::wmemchr

< cpp‎ | string‎ | wide

定义于头文件 `<cwchar>` |  |
const wchar_t* wmemchr( const wchar_t* ptr, wchar_t ch, std::size_t count ); |  |
wchar_t* wmemchr( wchar_t* ptr, wchar_t ch, std::size_t count ); |  |

于 `ptr` 所指向的宽字符数组的首 `count` 个宽字符中，定位宽字符 `ch` 的首次出现。

若 `count` 为零，则函数返回空指针。

### 参数

ptr | - | 指向要检验的宽字符数组的指针
ch | - | 要搜索的宽字符
count | - | 要检验的宽字符数

### 返回值

指向宽字符位置的指针，或若找不到这种字符则为空指针。

### 示例

    #include <iostream>
    #include <cwchar>
    #include <clocale>
    #include <locale>

    int main()
    {
        const wchar_t str[] = L"诺不轻信，故人不负我\0诺不轻许，故我不负人。";
        wchar_t target = L'许';
        const std::size_t sz = sizeof str / sizeof *str;
        if (const wchar_t* result = std::wmemchr(str, target, sz)) {
            std::setlocale(LC_ALL, "en_US.utf8");
            std::wcout.imbue(std::locale("en_US.utf8"));
            std::wcout << "Found '" << target
                       << "' at position " << result - str << "\n";
        }
    }

可能的输出：

    Found '许' at position 14

### 参阅

memchr | 在数组中搜索字符的首次出现 (函数)
strchr | 寻找字符的首次出现 (函数)
wcschr | 寻找宽字符串中宽字符的首次出现 (函数)
find find_if find_if_not (C++11) | 寻找首个满足特定判别标准的元素 (函数模板)