Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C]Modificare *argv[]

    Ciao a tutti!
    Sto realizzando un programma che confronta l'array di stringhe *argv[] cn un altro array di stringe che ho chiamato *comparisons[].

    Ecco il codice:

    codice:
    include <stdio.h>
    
    char *comparisons[] = {"ciao", "lettore", "peppe", '\0'};
    
    int main(int argc, char *argv[]){
        int i, f, h, i;
    
        if (argc == 1)
            printf("Non e' stato inserito nessun argomento!");
        else {
            for (i = 1; i < argc; i++){
                for (f = 0; comparisons[f] != '\0'; f++){
                    if (strcmp(argv[i], comparisons[f]) == 0){
                        for (h = 0; ;h++){
    
                            }
                        }
                    }
                }
            }
    
        else
        return 0;
        }
    Il programma, come ho già accennato, confronta le stringhe contenute in *comparisons[] con quelle contenute in *argv[]. Ogni volta che viene trovata in *argv[] una stringa contenuta in *comparisons[], dovrei eliminare da *argv[] quella stringa, ridimensionando così *argv[] facendo slittare tutte le altre stringhe che sono registrate nelle posizioni successive.

    L'unico problema è che non riesco a modificare il valore delle stringhe... ho letto da qualche parte che il valore delle stringhe non si può modificare (a meno che non siano contenute in array), quindi volevo chiedervi:
    Qualcuno di voi potrebbe aiutarmi a risolvere il dilemma?

    Grazie in anticipo per le eventuali risposte che vorrete darmi!
    Tutti sanno che una cosa è impossibile da realizzare, fin quando non arriva uno sprovveduto che non lo sa e la inventa. (cit. Albert Einstein)

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    131
    Potresti fare un secondo array di puntatori a char, e ci metti dentro solo gli indirizzi delle stringhe che non scarti.

  3. #3
    E per sostituirlo ad *argv[] devo far puntare il secondo elemendo di argv a quello del nuovo array?
    Tutti sanno che una cosa è impossibile da realizzare, fin quando non arriva uno sprovveduto che non lo sa e la inventa. (cit. Albert Einstein)

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Per quale motivo devi agire su argv? Non ha senso.

    Utilizza un array di puntatori alle stringhe che ti interessano, come ti è stato suggerito, senza toccare argv.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    ho letto qualcosa sulle gtk su linux e ho letto di una funzione che, tra le tante cose, eliminava da *argv[] determinate parole... mi sono chiesto come fosse possibile, per questo ho cominciato a scrivere questo miniprogramma... è più una cosa a scopo didattico che altro!
    Tutti sanno che una cosa è impossibile da realizzare, fin quando non arriva uno sprovveduto che non lo sa e la inventa. (cit. Albert Einstein)

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    I parametri in ingresso in argv sono utilizzati dal programma, che li legge e ne fa l'uso che vuole.

    Non ha alcun senso "eliminarli" ( o tentare di farlo anche solo per studio ) ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    va bene... RICEVUTO!
    Tutti sanno che una cosa è impossibile da realizzare, fin quando non arriva uno sprovveduto che non lo sa e la inventa. (cit. Albert Einstein)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.