memchr
, wmemchr
Individuare i caratteri in un buffer.
Sintassi
void *memchr(
const void *buffer,
int c,
size_t count
); // C only
void *memchr(
void *buffer,
int c,
size_t count
); // C++ only
const void *memchr(
const void *buffer,
int c,
size_t count
); // C++ only
wchar_t *wmemchr(
const wchar_t * buffer,
wchar_t c,
size_t count
); // C only
wchar_t *wmemchr(
wchar_t * buffer,
wchar_t c,
size_t count
); // C++ only
const wchar_t *wmemchr(
const wchar_t * buffer,
wchar_t c,
size_t count
); // C++ only
Parametri
buffer
Puntatore al buffer.
c
Carattere da cercare.
count
Numero di caratteri da controllare.
Valore restituito
Se l'operazione riesce, restituisce un puntatore alla prima posizione di c
in buffer
. In caso contrario, restituisce NULL.
Osservazioni:
memchr
e wmemchr
cercare la prima occorrenza di c
nei primi count
caratteri di buffer
. Si arresta quando trova c
o quando ha controllato i primi count
caratteri.
In C queste funzioni accettano un puntatore const
per il primo argomento. In C++ sono disponibili due overload. L'overload che accetta un puntatore a const
restituisce un puntatore a const
. La versione che accetta un puntatore a non-const
restituisce un puntatore a non-const
. La macro _CRT_CONST_CORRECT_OVERLOADS
viene definita se sono disponibili entrambe le const
versioni e nonconst
di queste funzioni. Se è necessario il comportamento nonconst
per entrambi gli overload C++ in C++, definire il simbolo _CONST_RETURN
.
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
memchr |
<memory.h> o <string.h> |
wmemchr |
<wchar.h> |
Per altre informazioni sulla compatibilità, vedere Compatibilità.
Librerie
Tutte le versioni delle librerie di runtime C.
Esempio
// crt_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";
int main( void )
{
char *pdest;
int result;
printf( "String to be searched:\n %s\n", string );
printf( " %s\n %s\n\n", fmt1, fmt2 );
printf( "Search char: %c\n", ch );
pdest = memchr( string, ch, sizeof( string ) );
result = (int)(pdest - string + 1);
if ( pdest != NULL )
printf( "Result: %c found at position %d\n", ch, result );
else
printf( "Result: %c not found\n" );
}
Output
String to be searched:
The quick brown dog jumps over the lazy fox
1 2 3 4 5
12345678901234567890123456789012345678901234567890
Search char: r
Result: r found at position 12
Vedi anche
Manipolazione del buffer
_memccpy
memcmp
, wmemcmp
memcpy
, wmemcpy
memset
, wmemset
strchr
, wcschr
, _mbschr
_mbschr_l