Domanda stupida:
esiste un modo per estrarre da un percorso del tipo
/cartella/cartella/nome.ext
solo il nome del file con l'estensione ?
considerando che /cartella/cartella può essere qualsiasi percorso.
grazie in anticipo...
Fillo
Domanda stupida:
esiste un modo per estrarre da un percorso del tipo
/cartella/cartella/nome.ext
solo il nome del file con l'estensione ?
considerando che /cartella/cartella può essere qualsiasi percorso.
grazie in anticipo...
Fillo
In pratica ti fai tutta la stringa e ti memorizzi l'ultimo slash con un puntatore a carattere.codice:#include <string.h> #include <stdio.h> char *stringa = "/cartella/cartella/nome.ext"; main() { int i = 0; char *result; while (stringa[i] != '\0') { if (stringa[i] == '/') result = &stringa[i+1]; i++; } printf("Il file : %s\n",result); return 0; }
Ciau
E la chiamo così nel maincodice:void getfilename(const char *path){ int i = 0; char *filename; while (path[i] != '\0'){ if (path[i] == '/'){ filename = &path[i+1]; } i++; } printf("stringa: %s\n",filename); return; //filename; }
Funziona ma in compilazione mi da questo warning:codice:char * stringa="/vale"; getfilename(stringa);
codice:warning: assignment discards qualifiers from pointer target type
Posta tutto il codice qui, vediamo di risolvere
è quello che ho postato prima....vabbè con le solite storie del main, le include, ecc....
Con il Dev-C++ (compilatore Mingw) funziona e non mi da warning.codice:#include <stdio.h> #include <stdlib.h> void getfilename(char *path){ int i = 0; char *filename; while (path[i] != '\0'){ if (path[i] == '/'){ filename = &path[i+1]; } i++; } printf("stringa: %s\n",filename); return; //filename; } main() { char * stringa="/vale"; getfilename(stringa); system("PAUSE"); return 0; }
Ho tolto il const dall'argomento della funzione.