那么如何将long或int转换为c样式的char数组?我不能使用任何外部库,因为我正在开发自己的内核。
答案 0 :(得分:1)
转换为十进制ascii字符串(不是以null结尾,缓冲区'足够大'):
size_t ultoa (char *buf, unsigned long u)
{
char *bptr = buf, *df, *dr;
do *bptr = ('0') + (char) (u % 10);
while ((u /= 10) != 0);
for (df = buf, dr = bptr - 1; df < dr; )
{
char di = *df, dj = *dr;
*df++ = dj, *dr-- = di; // (exchange)
}
return ((size_t) (bptr - buf)); // (digits)
}