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

    Concatenamento stringhe ed eliminazione stringhe uguali

    Salve a tutti sono nuovo di questo forum e vorrei porvi un problema, che non so risolverlo:
    Ho un file di testo.txt scritto così:
    Alfa 147 Roma 1
    BMW 320 Napoli 2
    Fiat 600 Milano 3
    1 Fabio 21 Bologna
    2 Maria 26 Crema
    3 Giuseppe 25 Torino

    Io dovrei creare dgli accoppiamenti tra le auto e i conducenti.
    Le coppie equivalgono ai numeri che si trovano alla fine delle auto e i numeri che si trovano all'inizio dei nomi, tipo:
    Alfa 147 Roma
    Fabio 21 Bologna

    E poi il programma dovrebbe controllare se nel listato siano presenti stringhe doppie, nel caso affermativo bisogna eliminarle.

    C'è qualcuno chepuò darmi una mano.
    Grazie

  2. #2
    ... e quale parte del lavoro non ti è chiaro come implementare?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296

    Moderazione

    Di quale linguaggio stiamo parlando?

    E' obbligatorio indicarlo, come da Regolamento.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Allora io riesco a farlo se in precedenza nel file testo "Archivio_auto.txt" imposto le coppie a priori cioe:

    Alfa 147 Roma
    Fabio 21 Bologna
    BMW 320 Napoli
    Maria 26 Crema
    Fiat 600 Milano
    Giuseppe 25 Torino

    Lo svolgo con fscanf e il gioco è fatto. Ma se non posso modificare il file di testo, non riesco a far riconoscere le coppie al programma, cioè non riesco a impostare la funzione logica di riconoscere il numero ad es. "1" della stringa Auto con il n. "1" del proprietario e quindi poi di stamparmi a video le coppie corrette, anche se sitrovano mescolate tra di loro e di controllare se esistono stringhe uguali ed eliminarle.

  5. #5
    Scusa ai ragione ho dimenticato di specificarlo il C++

  6. #6
    Ti basta usare un array: leggi i dati delle auto e li metti nella posizione dell'array corrispondente, quindi fai lo stesso mestiere con i dati dei proprietari (ovviamente in un altro array). Quindi stampi il contenuto dei due arrays con un for. Se non sai a compile time il numero di auto e conducenti usa la classe vector della STL.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Scusa se sono stressante, ma potresti compilarmi questa parte di alogaritmo? grazie

  8. #8
    Questo è il programma compilato da me, potresti corregermelo per fare le cose che ho sopra elencato. Grazie

    /*LEGGE DA FILE.txt E SAMPA A VIDEO IL FILE COPPIE*/

    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>

    typedef struct {
    char auto[50];
    int tipo_auto;
    char citta_auto[50];
    int n_auto;
    int n_lui;
    char nome_lui[50];
    int eta_lui;
    char citta_lui[50];
    } COPPIE;


    int main()
    {
    int i, ncoppie=0, res;
    FILE *fp;
    fp=fopen("Archivio_coppie.txt", "r");
    COPPIE archivio[50];


    if (fp==NULL) /*Si è verificato un errore il file Archivio_coppie non esiste*/
    printf ("Errore: il file 'Archivio_coppie.txt' non esiste\n");

    do
    { res=fscanf (fp,"%s %d %s %d %d %s %d %s" , archivio[ncoppie].auto,
    &archivio[ncoppie].tipo_auto,
    archivio[ncoppie].citta_auto,
    &archivio[ncoppie].n_auto,
    &archivio[ncoppie].n_lui,
    archivio[ncoppie].nome_lui,
    &archivio[ncoppie].eta_lui,
    archivio[ncoppie].citta_lui);
    }


    while (res!=EOF && ++ncoppie);
    fclose (fp);

    for (i=0; i<ncoppie; i++)
    { printf ("\n%s\n%s\n%d\n%d\n%s\n%s\n", archivio[i].auto,
    archivio[i].nome_lui,
    archivio[i].tipo_auto,
    archivio[i].eta_lui,
    archivio[i].citta_auto,
    archivio[i].citta_lui);

    printf ("\nPremi INVIO per visualizzare la coppia successiva\n");
    getchar();
    }

    printf ("\n\nPremi 'INVIO' per chiudere il programma.\n\n");
    getchar();


    return 0;
    }

  9. #9
    Dai, c'è qualcuno che mi da un suggerimento per risorverlo?
    Mi sto sbattendo la testa

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.