#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 :