std::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.
| Эта функция ведёт себя так, как если бы она читала байты последовательно и останавливалась сразу после обнаружения совпадающего байта: если массив, на который указывает | (начиная с 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++11) | находит первый элемент, удовлетворяющий заданным критериям (шаблон функции и функциональный объект алгоритма) |
|
(C++20)(C++20)(C++20) | |
Документация C для memchr |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/string/byte/memchr