Пространства имён
Варианты
Действия

std::memchr

Материал из cppreference.com
< cpp‎ | string‎ | byte
 
 
 
Однобайтовые строки с завершающим нулём
Функции
Манипуляции с символами
Преобразование в числовые форматы
(C++11)(C++11)
(C++11)(C++11)
Манипуляции со строками
Проверка строки
Манипуляции с памятью
memchr
Разное
 
Определено в заголовочном файле <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, но совпадение найдено внутри массива, поведение чётко определено.

(начиная с 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 << "искомый символ найден\n";
    else
        std::cout << "искомый символ не найден\n";
}

Вывод:

искомый символ найден

[править] Смотрите также

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