Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di duri93
    Registrato dal
    Dec 2008
    Messaggi
    155

    [C/C++] Unire due stringhe

    Ciao a tutti
    Ho un problema: ho due stringhe e voglio farle diventare una.
    Cercando in internet e su questo forum ho trovato:
    sprintf() e strcat()
    però quando le uso windows mi fa errore (quello classico: si è verificato un errore, l'applicazione verrà chiusa)
    come faccio a mettere a posto??

    GRAZIE A TUTTI

  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Senza vedere il codice aiutarti sarà impossibile.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  3. #3
    Utente di HTML.it L'avatar di duri93
    Registrato dal
    Dec 2008
    Messaggi
    155
    Ok lo posto hai ragione


    [PHP]char cartella[50]="C://WINDOWS";
    char file[50]="file.txt";

    strcat(cartella,file);

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    569
    L'errore potrebbe essere nella dichiarazione di cartella:

    char cartella[50]="C://WINDOWS// ";

    Mancando lo slash finale quando cerchi di manipolare il file il programma non lo trova e si blocca.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Il codice deve essere

    codice:
      char cartella[50], file[50];
    	
      strcpy(cartella, "C:\\WINDOWS\\");
      strcpy(file, "file.txt");
    
      strcat(cartella, file);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it L'avatar di duri93
    Registrato dal
    Dec 2008
    Messaggi
    155
    Così funziona, ma questo errore mi viene anche qui:

    codice:
    char*path[1];
    strcpy(path[0],"C:\\WINDOWS\\");
    strcpy(path[1],"C:\\Documents and Settings\\All Users\\Documenti\\Musica\\");
    
    char file[50];
    strcpy(file,"file.txt");
    
    strcat(path[1], file);
    E poi riesci a spiegare la differenza tra
    codice:
    char stringa[50]="Contenuto";
    e
    codice:
    char stringa[50];
    strcpy(stringa,"Contenuto");
    Se non hai voglia non importa, basta che funzioni il codice...

    GRAZIE MILLE

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Originariamente inviato da duri93
    Così funziona, ma questo errore mi viene anche qui:

    codice:
    char*path[1];
    strcpy(path[0],"C:\\WINDOWS\\");
    strcpy(path[1],"C:\\Documents and Settings\\All Users\\Documenti\\Musica\\");
    In questo modo dichiari due puntatori, ma non allochi lo spazio per le stringhe (per capirci, i 50 caratteri che avevi allocato prima ...).

    Devi scrivere, ad esempio

    codice:
    char path[2][100];
    strcpy(path[0],"C:\\WINDOWS\\");
    strcpy(path[1],"C:\\Documents and Settings\\All Users\\Documenti\\Musica\\");
    E poi riesci a spiegare la differenza tra
    codice:
    char stringa[50]="Contenuto";
    e
    codice:
    char stringa[50];
    strcpy(stringa,"Contenuto");
    Con la prima linea il compilatore non alloca lo spazio in memoria ma tratta la stringa come una costante e la memorizza nell'eseguibile, dove e' vietato scrivere (da cui l'errore che hai quando tenti di modificarla).

    L'altra versione invece, alloca lo spazio in memoria da poter modificare in seguito.

    Queste comunque, sono cognizioni di base per il linguaggio ... ti consiglio di seguire i primi capitoli di un libro per approfondire ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it L'avatar di duri93
    Registrato dal
    Dec 2008
    Messaggi
    155
    Si hai ragione è meglio che mi trovi un bel libro o una guida in internet... ho ancora tanta strada da fare, e non la farò tutta qui sul forum
    cmq GRAZIE

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.