Find the first occurrence of a character in a buffer
#include <string.h> void* memchr(void* buf, int ch, size_t length );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
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() strchr(), strrchr(), wmemchr(), wmemcmp(), wmemcpy(), wmemmove(), wmemset()