命名空间
变体
操作

std::memchr

来自 cppreference.cn
< 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