Per come hai scritto il codice controllo lo esegui per ogni carattere digitato, quindi devi passare a controllo a[i], scrivendo controllo(a[i]).

Quando definisci controllo devi esplicitare il parametro da controllare, quindi scrivere così

controllo(char cDaControllare)

Inoltre una funzione di controllo in genere non ritorna un void ma un bool (true se il controllo è andato bene, false altrimenti).

Dentro la funzione controllo tu fai lung=strlen(a); ma a non è definita da nessuna parte (idem per a[i].

Inoltre per come viene chiamata controllo la lunghezza è sempre pari a 1 essendo un carattere.