rieccomi..
allora sono riuscita a creare un dizionario in questo modo,posto il codice
codice:
#include<stdio.h>
#include<iostream>
#include<stdlib.h>


typedef struct{
        char parola[20];
        char significato[200];
        } elem;
        
struct dizionario;
typedef dizionario *Pdizionario;
    typedef struct dizionario{
            elem riga;
            Pdizionario next;
            } dizionario;
            
     Pdizionario inserisci(Pdizionario L, char*parola, char*significato){
           Pdizionario q;
           q=(Pdizionario)malloc(sizeof(dizionario)); 
           q->next=L;
           strcpy(q->riga.parola,parola);
           strcpy(q->riga.significato,significato);
           return(q);
           }
           

           
           void inserisciSignificato(Pdizionario L, char*parola,char*significato){
                Pdizionario temp=L;
                bool trovato=0;
                while((temp!=NULL)&& (!trovato)){
                                     if(strcmp(parola,temp->riga.parola)==0)
                                     trovato=true;
                                     else temp=temp->next;
                                     }
                                     strcpy(temp->riga.significato,significato);
                                     }
                bool cerca(Pdizionario L, char*parola){
                     Pdizionario temp=L;
                     bool trovato=false;
                     while((temp!=NULL)&& (!trovato)){
                      if(strcmp(parola,temp->riga.parola)==0)
                      trovato=true;
                                     else temp=temp->next;
                                     }
                      return(trovato);
                      }
           void leggiSignificato (Pdizionario L, char*parola){
                     Pdizionario temp=L;
                     bool trovato=false;
                     while((temp!=NULL)&& (!trovato)){
                      if(strcmp(parola,temp->riga.parola)==0)
                      trovato=true;
                                     else temp=temp->next;
                                     }
                                     printf("il significato relativo alla parola inserita e': %s\n",temp->riga.significato);
                                     system("PAUSE");
                                     }
            void leggi(Pdizionario L, char*parola){
                 if(cerca(L,parola)==true)
                 leggiSignificato(L,parola);
                 else{
                      printf("ERRORE: il significato collegato alla parola inserita non esiste\n");
                      system("PAUSE");
                      }
                      }
            
            void stampaDizionario(Pdizionario L){
                 Pdizionario q=L;
                 while(q!=NULL){
                                printf("Parola: %s || ", q->riga.parola);  
                                printf("Significato: %s\n", q->riga.significato);
                                q=q->next;
                                }
                                system("PAUSE");
                                }
                                
   int main (){
   char parola[20], significato[200];
   int scelta,u=1, t=1;    
   Pdizionario L;
   L = NULL;
   
   do{
   //creazione MENU per utente
         printf("SCELTA OPERAZIONE \n");
         printf("\nPREMI 1:-----------INSERISCI DATI---------------------\n");
         printf("PREMI 2:-----------LEGGI DATI-----------------\n");
         printf("PREMI 3:----------VISUALIZZA TUTTO IL DIZIONARIO-----------\n");
         printf("PREMI 4:------------USCITA---------\n");
         printf("\nScelta: ");
         scanf("%d",&scelta);
             
         if(scelta==1){
            printf("Digita la parola da inserire: ");
            scanf("%s",parola);   
            printf("inserisci il significato relativo alla parola inserita: \n");
            scanf("%s", significato);
            
            if(t==1){
                     L=inserisci(L,parola,significato);
                     t++;
                     }
                     else{
                          if(cerca(L,parola)==false)
                          L=inserisci(L,parola,significato);
                          else
                          inserisciSignificato(L,parola,significato);
                          }
                          }
         
            else if(scelta==2){
                 printf("inserisci il nome della parola da cui vuoi leggere: \n");
                 scanf("%s", parola);
                 leggi(L,parola);
                 }
                 else if(scelta==3)
                 stampaDizionario(L);
                 else u=0;
                 }while(u!=0);
                 system("PAUSE");
                 return 0;
                 
   }
in pratica ho creato un menu:
con la scelta uno posso inserire una parola e ad ogni parola inserita, inserisco anche il significato corrispondente, e qui ho un problema:se scrivo ad esempio casa e gli faccio corrispondere il significato:costruzione eretta dall'uomo
quando,in seguito,con la scelta 3 chiedo di visualizzare il dizionario lui mi da:
parola=casa,significato=costruzione
parola=eretta, significato=dall'uomo
se invece non metto gli spazi nel significato
cioè scrivo la parola casa e inserisco come significato corrispondente CostruzioneErettaDall'uomo e in seguito scelgo di visualizzare il dizionario non mi da problemi..
non so se sono stata chiara..
in più ho un altro problema io vorrei visualizzare il dizionario ordinato alfabeticamente..ho pensato a una funzione del genere,ma non so dove dovrei inserirla..
codice:
 
           Pdizionario InserisciElemento(Pdizionario L,char*parola){
           puntElenco q=L, prec;
           int PosTrovata;
           if(q==NULL){ //lista vuota
                       q=inserisci(L,parola);
                       return(q);
                       }
           if(strcmp(q->riga.parola,parola)>=0){ 
                                       q=inserisci(L,parola);
                                       return q;
                                       }
          //scorro lista 
           prec=q;
           while((q->next!=NULL) && (PosTrovata==0)){
                                 if(strcmp(q->next->riga.parola,parola)<0){
                                                                prec=q;
                                                                q=q->next;
                                                                }
                                 else PosTrovata=1;
                                 }
           prec->next=inserisci(q->next,parola);
           return (L);
           }
mi potete dare una mano?