errata conversione dei numeri in caratteri

Vedo che hai risolto in modo alternativo, comunque nel primo codice commetti errore nell'uso di strcat il quale prende due puntatori (il compilatore dovrebbe anche avvertirti dell'errore), mentre come primo argomento usi 'testo' il cui tipi è char (un carattere).

Vedi qui per il reference C: C reference

Devi dichiarare testo come array di caratteri di dimensioni tali da ospitare la concatenazione.

char testo[20];  // 19 caratteri + 1 carattere terminatore di stringa (0x00)

Ciao.