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 документация для memchr
|
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/string/byte/memchr