Passaggio argomento da riga di comando e array

di il
3 risposte

Passaggio argomento da riga di comando e array

Ciao a tutti, ho un problema con gli array probabilmente perché non ho ancora compreso a pieno il funzionamento, scrivo qui nella speranza che qualcuno mi lucidi le idee.

Devo scrivere un programma che prenda in input un percorso di un file dalla riga di comando al lancio del programma, ed eseguirne un analisi.
Per esempio ‘ $ ./a.out /home/file.c ‘.

Scrivendo la funzione main ‘ int main(int arcg, char *argv[]) ‘ salvo l’input che mi interessa nell’array argv.

Il mio problema è: come copio il percorso inserito in un altro array che abbia un carattere per ogni indice dell’array stesso?

Lo scopo come già detto è quello di analizzare il percorso, perciò volendo restituire solo il nome del file che è stato inserito da tastiera al lancio, cioè ‘file.c’, devo cercare nel percorso L ultimo slash e stampare ciò che viene dopo, ma come fare senza copiare il percorso in un altro array?

Sono uno studente di ingegneria e ho cominciato a programmare da pochissimo, spero qualcuno mi possa chiarire le idee indicandomi il ragionamento da seguire.

3 Risposte

  • Re: Passaggio argomento da riga di comando e array

    L'argomento argv è un vettore di puntatori a caratteri. In pratica un elenco di stringhe.

    Visualizza la prima con

    printf("%s\n", argv[0]);

    e la seconda con

    printf("%s\n", argv[1]);

    e ti rendi conto come utlizzarle
  • Re: Passaggio argomento da riga di comando e array

    oregon ha scritto:


    L'argomento argv è un vettore di puntatori a caratteri. In pratica un elenco di stringhe.

    Visualizza la prima con

    printf("%s\n", argv[0]);

    e la seconda con

    printf("%s\n", argv[1]);

    e ti rendi conto come utlizzarle
    Purtroppo continuo a non capire, se gentilmente potessi essere più specifico e cercare di rispondere alla domanda ti sarei grato!
    Devo trattare ogni 'puntatore a carattere' del vettore argv come una stringa e non come un vettore?
  • Re: Passaggio argomento da riga di comando e array

    Veramente ti ho risposto. Ogni elemento del vettore argv è un puntatore a stringa quindi lo puoi copiare in una tua stringa se vuoi ad esempio

    char stringa[100];
    strcpy(stringa, argv[1]);
Devi accedere o registrarti per scrivere nel forum
3 risposte