struct libro *filtra_libri (struct libro *plibri, unsigned int *pn, const char *cerca){
int i,l,q=0,j=0,m=*pn;
struct libro *buf=NULL;
for(i=0;i<m;i++){
for(l=0;plibri->titolo[l]>0;l++){
if(plibri->titolo[l]==cerca[j]){
q++;
j++;
}}
if(q>0){
buf=(struct libro*)realloc(buf,(i+1)*sizeof(struct libro));
buf[i].codice=plibri[i].codice;
strcpy(buf[i].titolo,plibri[i].titolo);
buf[i].pagine=plibri[i].pagine;
}
}
*pn=i;
return buf;
}
main(){
int j=0,i;unsigned pn=0;
char risp,cerca[]={"del"};
struct libro lib[40],*ris;
do{
printf("Inserisci il %d codice: ",j+1);
scanf("%d",&lib[j].codice);
fflush(stdin);
printf("Inserisci il Titolo: ");
gets(lib[j].titolo);
fflush(stdin);
printf("Inserisci le Pagine: ");
scanf("%d",&lib[j].pagine);
fflush(stdin);
j++;
pn++;
printf("vuoi inserire un'altro? ");
scanf("%c",&risp);
}while(risp=='s' || risp=='S');
ris=filtra_libri(lib,&pn,cerca);
for(i=0;i<pn;i++){
printf("\n%d,%s,%d",ris[i].codice,ris[i].titolo,ris[i].pagine);
}
printf("\n");
system("pause");
}
Funziona....
grazie lo stesso![]()

Rispondi quotando
