# std::memchr

From cppreference.com
< cpp‎ | string‎ | byte

Defined in header `<cstring>` |  |
const void* memchr( const void* ptr, int ch, std::size_t count ); |  |
void* memchr( void* ptr, int ch, std::size_t count ); |  |

Converts `ch` to unsigned char and locates the first occurrence of that value in the initial `count` characters (each interpreted as unsigned char) of the object pointed to by `ptr`.

This function behaves as if it reads the characters sequentially and stops as soon as a matching character is found: if the array pointed to by `ptr` is smaller than `count`, but the match is found within the array, the behavior is well-defined | (since C++17)

### Parameters

ptr | - | pointer to the object to be examined
ch | - | character to search for
count | - | max number of characters to examine

### Return value

Pointer to the location of the character, or NULL if no such character is found.

### Example

Search an array of characters.

Run this code

    #include <iostream>
    #include <cstring>

    int main()
    {
        char arr[] = {'a','\0','a','A','a','a','A','a'};
        char *pc = (char*)std::memchr(arr,'A',sizeof arr);
        if (pc != NULL)
           std::cout << "search character found\n";
        else
           std::cout << "search character not found\n";
    }

Output:

    search character found

### See also

strchr | finds the first occurrence of a character (function)
findfind_iffind_if_not (C++11) | finds the first element satisfying specific criteria (function template)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/string/byte/memchr&oldid=96962"