std::memchr
Материал из cppreference.com
<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.
|
Эта функция ведёт себя так, как если бы она считывала байты последовательно и останавливалась, как только были найдены совпадающие байты: если массив, на который указывает |
(начиная с 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";
}
Вывод:
искомый символ найден
Смотрите также
| находит первое вхождение символа (функция) | |
(C++11) |
находит первый элемент, соответствущий определённым критериям (шаблон функции) |
Документация C по memchr
| |