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?