命名空间
变体
操作

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 );

ch 转换为 unsigned char,并在由 ptr 指向的对象的初始 count 个字节(每个字节都解释为 unsigned char)中定位该值的首次出现。

此函数的行为就好像它按顺序读取字节,并在找到匹配的字节后停止:如果由 ptr 指向的数组小于 count,但在数组中找到了匹配项,则行为是明确定义的。

(自 C++17 起)

内容

[编辑] 参数

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

[编辑] 返回值

指向字节位置的指针,如果未找到这样的字节,则为一个空指针。

[编辑] 示例

搜索一个字符数组。

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

输出

search character found

[编辑] 另请参阅

查找字符的首次出现
(函数) [编辑]
查找满足特定条件的第一个元素
(函数模板) [编辑]
C 文档 针对 memchr