コンパイルしないで直接書いてるんでバグったらごめん
for文の継続条件ちょっと違うかも。でもこんなかんじだとおもわれ
char *hoge(int a)
{
  static char str[256];
  int i,j,k;
  //桁拾い
  for(i=0,j=a;j>0;i++,j/=10);
  //代入
  for(j=0,k=a;j<i;j++,k/=10) str[j]=k%10+'0';
  return(str);
}