Condividi tramite


memchr, wmemchr

Cercare i caratteri in un buffer.

void *memchr(
   const void *buf,
   int c,
   size_t count
); // C only
void *memchr(
   void *buf,
   int c,
   size_t count
); // C++ only
const void *memchr(
   const void *buf,
   int c,
   size_t count
); // C++ only
wchar_t *wmemchr(
   const wchar_t * buf, 
   wchar_t c,
   size_t count
); // C only
wchar_t *wmemchr(
   wchar_t * buf, 
   wchar_t c,
   size_t count
); // C++ only
const wchar_t *wmemchr(
   const wchar_t * buf, 
   wchar_t c,
   size_t count
); // C++ only

Parametri

  • buf
    Puntatore al buffer.

  • c
    Carattere da cercare.

  • count
    Numero di caratteri da controllare.

Valore restituito

Se l'operazione riesce, restituisce un puntatore alla prima locazione di c in buf. In caso contrario restituirà NULL.

Note

memchr e wmemchr cercano la prima occorrenza di c nel primo byte count di buf. Si arresta quando trova c o quando ha archiviato il primo byte di count.

In C, queste funzioni accettano un puntatore const come 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 un non-const non restituisce un puntatore a un non-const. La macro _CONST_CORRECT_OVERLOADS è definito se è entrambe le versioni const e non-const di queste funzioni sono disponibili. Se è necessario che entrambi gli overload C++ abbiano il comportamento non-const, definire il simbolo _CONST_RETURN.

Requisiti

Routine

Intestazione obbligatoria

memchr

<memory.h> o <string.h>

wmemchr

<wchar.h>

Per ulteriori 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

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

Vedere anche

Riferimenti

Modifica del buffer

_memccpy

memcmp, wmemcmp

memcpy, wmemcpy

memset, wmemset

strchr, wcschr, _mbschr, _mbschr_l