#include <string.h> // <cstring> en C++
char * strrchr( const char * string, int searchedChar );
Cette fonction recherche la dernière occurrence du caractère passé en second paramètre dans la chaîne de caractères spécifiée via le premier paramètre.
strrchr
est très proche de la fonction strchr
. La différence réside dans le fait que
strchr
renvoi la position de la première occurrence du caractère recherché alors que strrchr
renvoi la dernière occurrence
(recherche par la droite : r signifiant right).
Soit le caractère recherché est présent dans la chaîne et, dans ce cas, un pointeur sur la dernière occurrence du caractère vous sera retourné.
Soit le caractère n'est pas présent dans la chaîne et dans ce cas, le pointeur NULL
vous sera renvoyé.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { // Le nom du fichier d'origine const char * originalFilename = "folder/image.jpg"; // On prépare le nom du fichier de destination size_t size = strlen( originalFilename ) + 1; // +1 pour le zéro terminal char * destinationFilename = (char *) malloc( size ); strcpy( destinationFilename, originalFilename ); // Et on y remplace l'extension du fichier par l'extension .png char * lastDotPos = strrchr( destinationFilename, '.' ); strcpy( lastDotPos, ".png" ); // On affiche les deux noms de fichiers puts( originalFilename ); puts( destinationFilename ); return EXIT_SUCCESS; } |
Et voici le résultat produit par cet exemple :
$> gcc -o sample sample.c $> ./sample folder/image.jpg folder/image.png $>
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 :