Export (0) Print
Expand All
1 out of 1 rated this helpful - Rate this topic


Visual Studio 6.0

Finds characters in a buffer.

void *memchr( const void *buf, int c, size_t count );

Routine Required Header Compatibility
memchr <memory.h> or <string.h> ANSI, Win 95, Win NT

For additional compatibility information, see Compatibility in the Introduction.


LIBC.LIB Single thread static library, retail version
LIBCMT.LIB Multithread static library, retail version
MSVCRT.LIB Import library for MSVCRT.DLL, retail version

Return Value

If successful, memchr returns a pointer to the first location of c in buf. Otherwise it returns NULL.



Pointer to buffer


Character to look for


Number of characters to check


The memchr function looks for the first occurrence of c in the first count bytes of buf. It stops when it finds c or when it has checked the first count bytes.


/* MEMCHR.C */

#include <memory.h>
#include <stdio.h>

int  ch = 'r';
char str[] =    "lazy";
char string[] = "The quick brown dog jumps over the lazy fox";
char fmt1[] =   "         1         2         3         4         5";
char fmt2[] =   "12345678901234567890123456789012345678901234567890";

void main( void )
   char *pdest;
   int result;
   printf( "String to be searched:\n\t\t%s\n", string );
   printf( "\t\t%s\n\t\t%s\n\n", fmt1, fmt2 );

   printf( "Search char:\t%c\n", ch );
   pdest = memchr( string, ch, sizeof( string ) );
   result = pdest - string + 1;
   if( pdest != NULL )
      printf( "Result:\t\t%c found at position %d\n\n", ch, result );
      printf( "Result:\t\t%c not found\n" );


String to be searched:
      The quick brown dog jumps over the lazy fox
               1         2         3         4         5

Search char:   r
Result:      r found at position 12

Buffer Manipulation Routines

See Also   _memccpy, memcmp, memcpy, memset, strchr

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
© 2014 Microsoft. All rights reserved.