Ecco cosa fa sprintf:
il contenuto di i viene convertito in stringa e copiato in s

Per il resto questa mi sembra l'unica soluzione al problema.Peccato che il programma vada in crash.