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

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";
}

Вывод:

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

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

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