Locate the first occurrence of a character in a buffer
#include <string.h>
void* memchr( const void* buf,
int ch,
size_t length );
libc
The memchr() function locates the first occurrence of ch (converted to an unsigned char) in the first length bytes of the buffer pointed to by buf.
A pointer to the located character, or NULL if ch couldn't be found.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main( void )
{
char buffer[80];
char* where;
strcpy( buffer, "video x-rays" );
where = (char *) memchr( buffer, 'x', 6 );
if( where == NULL ) {
printf( "'x' not found\n" );
} else {
printf( "%s\n", where );
}
where = (char *) memchr( buffer, 'r', 9 );
if( where == NULL ) {
printf( "'r' not found\n" );
} else {
printf( "%s\n", where );
}
return EXIT_SUCCESS;
}
produces the output:
'x' not found rays
| Safety: | |
|---|---|
| Cancellation point | No |
| Interrupt handler | Yes |
| Signal handler | Yes |
| Thread | Yes |
memccpy(), memcmp(), memcpy(), memicmp(), memmove(), memset()