Perchè usi due volte la getc:

codice:
while(getc(f) !=EOF){

    ch=getc(f);  // legge nuovamente un altro carattere


s[i]=ch;
i++;
}
E ti dimentichi di scrivere il terminatore.
Correggendo:

codice:
while(getc(f) !=EOF){



s[i]=ch;
i++;
}
s[i]=0;
PS: Indenta meglio il codice.