#include "itoa.h" const char *itoa(long v, int digits) { static char buf[INTLENGTH]; bool neg = false; if(v < 0) { v = -v; neg = true; } char* ptr = buf + INTLENGTH; *--ptr = '\0'; do { *--ptr = (v % 10) + '0'; v /= 10; --digits; } while(v != 0); while(digits > 0 && ptr > buf-1) *--ptr = '0', --digits; if(neg) *--ptr = '-'; return ptr; }