std::memchr

来自cppreference.com
< cpp‎ | string‎ | byte
在标头 <cstring> 定义
const void* memchr( const void* ptr, int ch, std::size_t count );
      void* memchr(       void* ptr, int ch, std::size_t count );

转换 chunsigned char 并在 ptr 所指向的对象的起始 count (每个都转译为 unsigned char )个字节中定位该值的首次出现。

此函数表现如同它按顺序读取字节,并立即于找到匹配的字节时停止:若 ptr 所指向的字节数组小于 count ,但在数组中找到匹配,则行为良定义。

(C++17 起)

参数

ptr - 指向要检验的对象的指针
ch - 要搜索的字节
count - 要检验的最大字节数

返回值

指向字节位置的指针,或若找不到这种字节则为空指针。

示例

搜索字符数组。

#include <iostream>
#include <cstring>
 
int main()
{
    char arr[] = {'a','\0','a','A','a','a','A','a'};
    char *pc = (char*)std::memchr(arr,'A',sizeof arr);
    if (pc != NULL)
       std::cout << "search character found\n";
    else
       std::cout << "search character not found\n";
}

输出:

search character found

参阅

寻找字符的首次出现
(函数)
寻找首个满足特定判别标准的元素
(函数模板)