Originariamente inviato da livrea
codice:
void LeggiStringa(char s[], unsigned int dim){
     unsigned int i=0;
     for(i=0; i<dim-1 && (s[i]=getchar())!='\n';i++)
         s[i]='\0';
     if(i==dim-1) while(getchar()!='\n');    
}
1- con la funzione LeggiElemento non riesco a inserire cognome e nome da tastiera
Perché ogni volta con l' istruzione s[i]='\0' sovrascrivi il carattere letto e ci scrivi un carattere nullo.Il terminatore va aggiunto solo alla fine della stringa.
Modifica la funzione così:

codice:
void LeggiStringa(char s[], unsigned int dim)
{
    unsigned int i=0;
    for(i=0; i<dim-1 && (s[i]=getchar())!='\n';i++)
        ;
    s[i]=0;
    if(i==dim-1)
        while(getchar()!='\n');
}
E tieni presente che c'è anche fgets.