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

std::memchr

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

Вывод:

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

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

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