Fonctions strchr et strrchr

Entête à inclure

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

Fonctions strchr et strrchr

char * strchr( const char * string, int searchedChar );
char * strrchr( const char * string, int searchedChar );

Ces deux fonctions recherchent si le caractère passé en second paramètre est présent dans la chaîne de caractère spécifiée via le premier paramètre. La différence entre ces deux fonctions réside dans le fait que la première (strchr) réalise sa recherche à partir du début de la chaîne alors que la seconde (strrchr) réalise sa recherche à partir de la fin (le second r étant pour right ; pas la droite).

Paramètres

  • string : la chaîne de caractères dans laquelle effectuer la recherche.
  • searchedChar : permet de définir le caractère recherché.

Valeur de retour

Soit le caractère recherché est trouvé et dans ce cas un pointeur sur la position du caractère recherché vous sera retourné. Soit le caractère n'est pas présent dans la chaîne et dans ce cas, un pointeur nul vous sera renvoyé.

Exemple de code

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main() {

    const char * source = "The C Language";
    char * destination;
    char * pointer;
    int length = strlen( source );
    
    /* We clone the inital string */
    destination = (char *) malloc( sizeof( char) * (length+1) );
    strcpy( destination, source );
        
    /* We replace all 'a' characters */
    while (pointer = strchr( destination, 'a' ) ) {
        *pointer = 'A';
    }
    
    /* Display result : The C LAnguAge */
    printf( "Result : %s\n", destination );
        
    /* Release dynamicly allocated memory */
    free( destination );
    
    return 0;
}

Sujets connexes

strcat
strcpy
strlen