C ++如何将整数和long转换为char数组

时间:2014-01-23 17:20:55

标签: c++ c kernel

那么如何将long或int转换为c样式的char数组?我不能使用任何外部库,因为我正在开发自己的内核。

1 个答案:

答案 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)
}