ll'assegnazione in struct funziona perfettamente. qui invece dove sbaglio?

codice:
int b=0;
char s;
for(int a=0;s=fgetc(files)!=EOF;){ //quando trovi la fine del file finisci il ciclo
 //quando trovi la newline finisci il ciclo
		while(s=getc(files)!=','){ //quando trovi la virgola finisci il ciclo
		dade[b].nome[a]=s;//memorizza il carattere s nell'array
		a++;
		};
		while(s=getc(files)!=','){ //quando trovi la virgola finisci il ciclo
		dade[b].cognome[a]=s;//memorizza il carattere s nell'array
		a++;		
		};
		while(s=getc(files)!='\n'){ //quando trovi la newline finisci il ciclo
		dade[b].eta[a]=s;//memorizza il carattere s nell'array
		a++;		
		};
b++;
};
Errore
codice:
Cerca: davide
Nome	Cognome	Eta
Risultato non trovato
Segmentation fault (core dumped)
File txt
codice:
Davide,Cavallini,25
Sara,Tagliapietra,22
Elena,Berti,23
Io vorrei che leggesse e mi stampasse a schermo, cercando davide ad esempio
Davide\tCavallini\t25