Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

Fonction memmem (POSIX)

La fonction memcpy_s La fonction memmove


Entête à inclure

#include <string.h>  // <cstring> en C++

Fonction memmem (POSIX)

void * memmem( const void * buffer, size_t bufferSize, const void * pattern, size_t patternSize );

La fonction memmem recherche un motif binaire dans un autre bloc mémoire. Elle est à strstr ce que memchr est à strchr : aucune terminaison par '\0' n'est requise.

Paramètres

Valeur de retour

La fonction retourne l'adresse du début du motif trouvé. Si le motif est absent, elle retourne un pointeur nul.

Exemple de code

Le programme suivant montre une utilisation simple de memmem.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
#include <stdio.h>
#include <string.h>

int main() {

    const unsigned char data[] = { 0x10, 0x20, 0x30, 0x40, 0x50 };
    const unsigned char pattern[] = { 0x30, 0x40 };

    unsigned char * result = memmem( data, sizeof data, pattern, sizeof pattern );

    if ( result != NULL ) {
        printf( "Motif trouve a l'indice %ld\n", result - data );
    }

    return 0;
}
Exemple d'utilisation de memmem

Voici le résultat produit par cet exemple.

Motif trouve a l'indice 2

Sujets connexes

memchr
strstr


La fonction memcpy_s La fonction memmove




Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé