C++ memchr()

The memchr() function in C++ searches for the first occurrence of a character in a specified number of characters.

memchr() prototype

const void* memchr( const void* ptr, int ch, size_t count );
void* memchr( void* ptr, int ch, size_t count );

The memchr() function takes three arguments: ptr, ch and count.

It first converts ch to unsigned char and locates its first occurrence in the first count characters of the object pointed to by ptr.

It is defined in <cstring> header file.

memchr() Parameters

  • ptr: Pointer to the object to be searched for.
  • ch: Character to search for.
  • count: Number of character to be searched for.

memchr() Return value

If the character is found, the memchr() function returns a pointer to the location of the character, otherwise returns null pointer.

Example: How memchr() function works

#include <cstring>
#include <iostream>

using namespace std;

int main()
{
    char ptr[] = "This is a random string";
    char ch = 'r';
    int count = 15;
    
    if (memchr(ptr,ch, count))
        cout << ch << " is present in first " << count << " characters of \"" << ptr << "\"";
    else
        cout << ch << " is not present in first " << count << " characters of \"" << ptr << "\"";

    return 0;
}

When you run the program, the output will be:

r is present in first 15 characters of "This is a random string"