long を string に変換する必要がありますが、使用できませんsprintf()
。
これが私のコードです
char *ultostr(unsigned long value, char *ptr, int base)
{
unsigned long t = 0;
unsigned long res = 0;
unsigned long tmp;
int count = 0;
tmp = value;
if (ptr == NULL)
{
return NULL;
}
if (tmp == 0)
{
count++;
}
while(tmp > 0)
{
tmp = tmp/base;
count++;
}
ptr += count;
*ptr = '\0';
do
{
t = value / base;
res = value - (base*t);
if (res < 10)
{
* -- ptr = '0' + res;
}
else if ((res >= 10) && (res < 16))
{
* --ptr = 'A' - 10 + res;
}
value = t;
} while (value != 0);
return(ptr);
}