codice:
#include <stdio.h>#include <stdlib.h>
#define size 90
struct lista
{
char stringa[size];
struct lista *next;
};
struct lista *inserisci(struct lista* testa, char tmp[]);
void stampa(struct lista *testa);
void cerca(struct lista *testa, char icerca[]);
main()
{
struct lista *testa=NULL;
char tmp_stringa[size],icerca[size];
int n;
printf("MENU:\n1-inserisci\n2-stampa ed esci\n");
scanf("%d", &n);
do
{
switch(n)
{
case 1:
printf("inserisci\n");
fflush(stdin);
gets(tmp_stringa);
testa=inserisci(testa,tmp_stringa);
break;
case 2:
stampa(testa);break;
default: printf("ERRORE\n");break;
};
printf("MENU:\n1-inserisci\n2-stampa ed esci\n");
scanf("%d", &n);
}while(n!=2);
do
{
printf("cosa vuoi cercare?\n");
scanf("%s", icerca);
cerca(testa,icerca);
printf("vuoi continuare(si=1/no=0)\n");
scanf("%d", &n);
}while(n==1);
system("pause");
}
struct lista *inserisci(struct lista *testa, char tmp[])
{
struct lista *a,*b;
a=(struct lista*)malloc(sizeof(struct lista));
strcpy(a->stringa,tmp);
a->next=NULL;
if(testa==NULL)
{
return a;
}
for(b=testa;b->next!=NULL; b=b->next);
b->next=a;
return testa;
}
void stampa(struct lista *testa)
{
for(;testa!=NULL; testa=testa->next)
{
printf("%s\n", testa->stringa);
}
}
void cerca(struct lista *testa, char icerca[])
{
for(;testa!=NULL; testa=testa->next)
{
if(strcmp(testa->stringa,icerca)==0)
{
printf("trovato\n");
}
}
}
ho corretto tutto... pero ho un problema adesso con la funzione stampa
avevo provato ad inserire fflush(stdout), ma nnt, come posso risolvere?