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 и находит первое вхождение этого значения в первых count байтах (каждый интерпретируется как unsigned char ) объекта, на который указывает ptr .

Эта функция ведет себя так, как если бы она читала байты последовательно и останавливалась, как только найден соответствующий байт: если массив, на который указывает 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

Смотрите также

находит первое вхождение символа
(функция)
находит первый элемент, удовлетворяющий определенным критериям
(шаблон функции)