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?