Réponse acceptée !
Voici le code du itoa de VC++ 6
void xtoa (unsigned long val, char *buf, unsigned radix, int is_neg)
{
char *p; /* pointer to traverse string */
char *firstdig; /* pointer to first digit */
char temp; /* temp char */
unsigned digval; /* value of digit */
p = buf;
if (is_neg) {
*p++ = '-';
val = (unsigned long)(-(long)val);
}
firstdig = p;
do {
digval = (unsigned) (val % radix);
val /= radix;
if (digval > 9)
*p++ = (char) (digval - 10 + 'a');
else
*p++ = (char) (digval + '0');
} while (val > 0);
*p-- = '\0';
do {
temp = *p;
*p = *firstdig;
*firstdig = temp;
--p;
++firstdig;
} while (firstdig < p);
}
inline char *itoa (char *buf, int val, int radix)
{
if (radix == 10 && val < 0) xtoa((unsigned long)val, buf, radix, 1);
else xtoa((unsigned long)(unsigned int)val, buf, radix, 0);
return buf;
}
C++ (@++)