Rimaneva nel buffer il carattere invio del precedente scanf ! quando incontrava il nuovo
scanf terminava subito , e non leggeva il carattere di controllo . succede sempre
quando si vuole leggere un carattere %c con scanf
Dopo aver letto il carattere separatore ricordati di usarlo in seguito con l'asterisco
codice:
int lettura(char v[10][20], char *sep, char st[])
{
    FILE* f;
    int dim,z,k,i;
    char nome[10];
    printf("Inserire il nome del file da cui prendere le parole\n");
    scanf("%s", nome);
    f=fopen(nome, "r");
    if(f==NULL)
    {
        dim=-1;
    }
    else
    {
        printf("Inserire qual'e' il separatore\n");
        fflush(stdin);// PULISCE stdin dal carettere invio del precedente scanf
        scanf("%c", sep);
        printf("valore di sep %c\n",*sep);// dopo usa *sep e non sep :)
        fscanf(f,"%s", st);
    }
}
Ciao oregon, non avevo visto la tua risposta