Namespaces
Variants

std:: memchr

From cppreference.net
定义于头文件 <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 ,但在数组范围内找到了匹配项,则其行为是明确定义的。

(since 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