Esercizio in C

di il
3 risposte

Esercizio in C

Salve raga,
sono autodidatta con il linguaggio C, ho il seguente problema:
un programma in C che sia in grado di leggere da un file in cui siano memorizzati una serie di nomi di persona.
I nomi presenti nel file, dal nome nomi.txt, sono memorizzati uno per riga e l’ultima riga presenta la stringa “Fine dati”, che indica la conclusione degli elementi da leggere.
Ipotizzare che ci siano almeno 10 nomi e costruire il relativo file nomi.txt e che uno stesso nome sia ripetuto più volte.
Organizzare il programma con un main con chiamate a funzione per:


1) Caricare e visualizzare a video la lista dei nomi presenti nel file nomi.txt

2) A video, visualizzare i nomi con l’indicazione del numero di ripetizioni dei nomi presenti nel file

3) Scrive in un file, elenco_nomi_ripetuti_ordinati.txt in ordine alfabetico.

1)Ad es. sia questa la lista dei candidati presenti nel file nomi.txt:
Carlo
Aldo
Rosa
Aldo
Rosa
Carlo
Ramona
Rosa
Rosa
Carlo
Fine dati

2)3)A video e nel file elenco_nomi_ripetuti_ordinati.txt le informazioni da memorizzare sono:
Aldo 2
Carlo 3
Ramona 1
Rosa 4
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() 
{

  FILE *fd;
  char lunghezza[200];
  char *nomi;


		/* apre il file */
  fd=fopen("nomi.txt", "r");
  if( fd==NULL ) {
    perror("Errore apertura del file");
    exit(1);
  }


		/* legge e stampa ogni riga */
  while(1) {
    nomi=fgets(lunghezza, 200, fd);
    if( nomi==NULL )
      break;
    printf("%s", lunghezza);
  }

  system("PAUSE");	
  return 0;
}
come faccio adesso a prendere ogni stringa dal file e confrontarla con strcmp ? e contare l'uguglianza della stringa?

3 Risposte

  • Re: Esercizio in C

    Dovresti leggere il file e parcheggiare le stringhe lette in qualche struttura dati che ti permette di incrementare un contatore,
  • Re: Esercizio in C

    SVNiko ha scritto:


    Dovresti leggere il file e parcheggiare le stringhe lette in qualche struttura dati che ti permette di incrementare un contatore,
    esatto devo estrarre i dati dal file di testo e "parcheggiare in una struct" che non capisco come scriverlo in C
  • Re: Esercizio in C

    Puoi scrivere così oppure con i puntatori per allocare dinamicamente:
    
    typedef]struct dato{
       char nome[MAXNOME];
       int conta;
    }Dato;
    
    .....
    
    Dato vettore[MAX];
    
    
    Adesso prova nel ciclo di acquisizione a parcheggiare i dati nel vettore e incrementare conta.
Devi accedere o registrarti per scrivere nel forum
3 risposte