Non credo che Base64 sia quello che cercano... comunque per il vostro problema potete fare semplicemente così:
- acquisite i 26 caratteri che saranno il vostro alfabeto-chiave tramite fgets (dimentica la gets, è deprecata in quanto pericolosa), memorizzandoli in un array di char;
- scrivete una funzione che converta un char in un intero compreso tra 0 e 25, che rappresenta un carattere dell'alfabeto, riservando eventualmente un valore negativo nel caso in cui il carattere non sia alfabetico; potete verificare facilmente se un carattere è alfabetico con la funzione isalpha. Dovrete tra l'altro decidere come gestire la questione maiuscole/minuscole.
- ciclate su tutti i caratteri da convertire, sostituendoli in-place con i caratteri convertiti; per convertirli, basterà richiamare la funzione di cui sopra passandole il carattere corrente, e utilizzare il suo valore come indice nell'array dell'alfabeto-chiave. Naturalmente dovrete aver cura di non sostituire i valori per cui la funzione restituisce un valore di errore (corrispondente a caratteri non alfabetici).