Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24

Discussione: [C] Unione di stringhe

  1. #1

    [C] Unione di stringhe

    Ciao a tutti,
    ho ovviamente un problema :-(
    devo costruire in C una funzione che mi restituisca in output l'unione di due o più stringhe.
    Per esempio la funzione chiamiamola CreaPercorso(), in ingresso inserisco le variabili Percorso e NomeFile; in uscita devo ottenere l'unione delle stringhe Percorso e NomeFile in modo da avere il percorso completo di un file.
    Come posso fare?
    Sepp

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Usa la funzione strcat

    Naturalmente devi provvedere all'allocazione della nuova stringa

  3. #3

    Re: [C] Unione di stringhe

    Originariamente inviato da giuseppe74
    Ciao a tutti,
    ho ovviamente un problema :-(
    devo costruire in C una funzione che mi restituisca in output l'unione di due o più stringhe.
    Per esempio la funzione chiamiamola CreaPercorso(), in ingresso inserisco le variabili Percorso e NomeFile; in uscita devo ottenere l'unione delle stringhe Percorso e NomeFile in modo da avere il percorso completo di un file.
    Come posso fare?
    Sepp
    Basta guardarsi un help della libreria string.h e troverai la funzione strcat() che fa al caso tuo

  4. #4
    grazie oregon,
    la funzione è strcat, ok.
    ma cosa intendi per allocazione della nuova stringa?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Intendo che la nuova stringa sara' di lunghezza pari alla somma delle due che stai unendo e quindi devi prevedere lo spazio allocandolo ...

  6. #6
    grazie,
    ora tutto è chiarissimo....

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Di nulla ...

  8. #8
    Grazie. Ho fatto così:

    #include <string.h>
    void CreaPercorso(char*,char*);
    void CreaPercorso( char Percorso[100], char NomeFile[100])
    {
    char *strcat(Percorso,NomeFile);
    strcat(Percorso,"\\");
    strcat(Percorso,NomeFile);
    }

    la cosa sembra funzionare...
    :master:

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    No ... dovresti pure avere degli errori in compilazione perche' il codice che hai scritto e' sbagliato ...

    Studia questo esempio ...

    codice:
    #include <string.h> 
    #include <malloc.h> 
    
    char *CreaPercorso(char *percorso, char *nomefile) 
    { 
      char *res = (char *)malloc(strlen(percorso)+strlen(nomefile)+1);
    
      strcpy(res, percorso);
      strcat(res, "\\"); 
      strcat(res, nomefile); 
    
      return res;
    } 
    
    void main()
    {
      char p[15], f[15];
      char *pathfile;
    
      strcpy(p, "C:\\Percorso");
      strcpy(f, "File.txt");
    
      pathfile = CreaPercorso(p, f);
    
      printf("%s\n", pathfile);
    
      free(pathfile);
    }

  10. #10
    errori di compilazione non ne ho avuto, e il percorso me lo crea in modo giusto, proverò anche il tuo metodo ma finchè funziona non lo tocco...
    grazie per l'aiuto.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.