Определить первое вхождение символа в области памяти
#include <string.h>void * memchr( 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);}
Код генерирует следующий вывод:
$ ./a.out 'x' not found rays
ANSI, POSIX 1003.1
memccpy(), memcmp(), memcpy(), memicmp(), memmove(), memset() strchr(), strrchr(), wmemchr(), wmemcmp(), wmemcpy(), wmemmove(), wmemset()
Предыдущий раздел: Описание API системной библиотеки