Il problema può essere risolto in diverse maniere.
La strada che propongo è di utilizzare un array char statico contenente le codifiche dei tuoi numeri (0..9).
L'indice dell'array corrisponderà al valore numerico.
Costruire una funzione di encode nella quale il valore numerico viene scandito dall'operatore modulo e
memorizzato nel buffer statico di uscita.
...
static char table[]={'y','a','#','?','^','$','A','!','r','q'};
char *encode (int n)
{
static char buf[10+1]; // Max 4byte integer
int m,j;
for (j=10;n;n/=10,j--)
{
m=n%10;
*(buf+j)=table[m];
}
return buf+j+1;
}
...
Saluti,
Max