Séparer un nom de fichier d’un chemin en C

Je suis nouveau en C mais je suis un expert en python. Je recherche un équivalent fonctionnel de la fonction ssortingng.split (“/”) [- 1] dans C. Jusqu’à présent, j’ai pu créer un tableau de caractères comportant tout mon chemin. Je veux diviser cette chaîne afin que je n’ai que le nom du fichier. Ci-dessous, j’ai inclus un échantillon

char input_file_path [1024] strcpy(input_file_path, "/this/is/my/file/path.txt") 

Je veux une fonction qui prend input_file_path et en sépare le path.txt. Merci!

Vous recherchez le nom de basename(3) :

La fonction basename() renvoie le dernier composant du chemin indiqué par chemin en supprimant les caractères ” / ” de fin.

Exemple:

 #include  #include  int main(void) { char path[] = "/this/is/my/file/path.txt"; char *file = basename(path); printf("%s\n", file); return 0; } 

Construire et exécuter:

 $ make example && ./example cc example.c -o example path.txt 

Essayez strtok() .

Regardez-le avec l’ man strtok commande man strtok . Les pages de man sont un excellent guide pour apprendre le C sans avoir à quitter la sécurité de votre ligne de commande.

http://en.cppreference.com/w/c/ssortingng/byte/strtok

Vérifier ici. C’est également une bonne référence pour le code C et C ++.