char* itoa(int num, char* pstr, int radix)
{
if(!pstr)
return NULL;
char* pRet = pstr;
int power = 1;
::memset(pstr,0x00,strlen(pstr));
// 1. calc sign +-
if(num < 0)
{
num = -num;
*pstr++ = '-';
}
// 2. calc power, such as 1234, power is 1000 for 10jinzhi
for(int tmp = num; tmp >= radix; tmp /= radix)
power *= radix;
// 3. set string with positive dir
for(; power > 0; power /= radix)
{
*pstr++ = num / power + '0';
num %= power;
}
// 4. end
*pstr = '\0';
return pRet;
}
{
if(!pstr)
return NULL;
char* pRet = pstr;
int power = 1;
::memset(pstr,0x00,strlen(pstr));
// 1. calc sign +-
if(num < 0)
{
num = -num;
*pstr++ = '-';
}
// 2. calc power, such as 1234, power is 1000 for 10jinzhi
for(int tmp = num; tmp >= radix; tmp /= radix)
power *= radix;
// 3. set string with positive dir
for(; power > 0; power /= radix)
{
*pstr++ = num / power + '0';
num %= power;
}
// 4. end
*pstr = '\0';
return pRet;
}