Kód:
char * c = new char[255];
int rad = 0; // aktualni cifra
bool znamenko = cislo >= 0; // zapamatuju si znamenko cisla
cislo = cislo >= 0 ? cislo : -cislo; // dale jiz pracuju jen s absolutni hodnoutou
if (cislo == 0) c[rad++] = '0'; // specialni pripad ze cislo == 0
while (cislo > 0)  // dokud je cislo > 0
{
   c[rad++] = (cislo % 10)+'0'; // na prislusnou pozici v poli vlozim zbytek po deleni 10; +'0' jen zvysi hodnotu charu tak aby to bylo v rozsahu '0'..'9'
   cislo = cislo / 10; // uriznu posledni cifru
} 
c[rad] = znamenko ? '+' : '-'; // nakonec vlozim do retezce znamenko


delete [] c;
PS: byly tam dva bugy 0 -> '0' a prace jen s absolutni hodnotou cisla...