今天一个孩子问我itoa函数怎么写,我才发现原来我也不会;
想了一下,又把solaris源码里的itoa.c找出来看了一下,还是人家写的简洁明了;BS自己啊
char *
itoa(n, base)
long n; /* abs k16 */
int base;
{
register char *p;
register int minus;
static char buf[36];
p = &buf[36];
*--p = '';
if (n < 0) {
minus = 1;
n = -n;
}
else
minus = 0;
if (n == 0)
*--p = '0';
else
while (n > 0) {
*--p = "0123456789abcdef"[n % base];
n /= base;
}
if (minus)
*--p = '-';
return p;
}
这就是人家的代码,我竟然忘了用static缓冲区;
"0123456789abcdef"[n % base] 这个我也佩服的不得了,记下来以后去显呗;