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 :

Fonction memchr

L'entête string.h La fonction memcmp


Entête à inclure

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

Fonction memchr

void * memchr( const void * memoryBlock, int searchedChar, size_t size );

Recherche la première occurence d'une valeur typée int, mais interprétée en tant que char, dans un bloc de mémoire. Comme on traite un bloc de mémoire et non pas une chaîne de caractères AZT (à zéro terminal), nous devons aussi spécifier à la fonction la taille du bloc de mémoire dans lequel réaliser la recherche.

Paramètres

Valeur de retour

Si la fonction a trouvé le caractère recherché, la fonction renvoie un pointeur vers sa première occurence. Si ce n'est pas le cas, la fonction renvoie la valeur NULL.

Exemple de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {

    char data[] = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 };
    const unsigned int size = 10;

    // On recherche une valeur inhéxistante :
    void * found = memchr( data, 57, size );
    printf( "57 is %s\n", ( found != NULL ? "found" : "not found" ) );

    // On recherche une valeur existante :
    found = memchr( data, 50, size );
    printf( "50 is %s\n", ( found != NULL ? "found" : "not found" ) );
    if ( found != NULL ) {
        printf( "La valeur à la position calculée est %d\n", *((char *) found) );
    }

    return EXIT_SUCCESS;
}
Exemple d'utilisation de la fonction memchr

Et voici les résultats produits par cet exemple :

$> gcc -o sample sample.c
$> ./sample
57 is not found
50 is found
La valeur à la position calculée est 50
$>

Sujets connexes

memcmp
strchr
strrchr


L'entête string.h La fonction memcmp