长整型数转换为字符串,str-字符串指针,dat-待转换数,返回值-字符串长度len++的...
其中len++有什么用为什么必须有
len += i;和len++最终的值一样吗
v>unsigned char LongToString(unsigned char *str, signed long dat)
{
signed char i = 0;
unsigned char len = 0;
unsigned char buf[12];
if (dat < 0) //如果为负数,首先取绝对值,并在指针上添加负号
{
dat = -dat;
*str++ = '-';
len++;
}
do { //先转换为低位在前的十进制数组
buf[i++] = dat % 10;
dat /= 10;
} while (dat > 0);
len += i; //i 最后的值就是有效字符的个数
while (i-- > 0) //将数组值转换为 ASCII 码反向拷贝到接收指针上
{
*str++ = buf[ i] + '0';
}
*str = '\0'; //添加字符串结束符
return len; //返回字符串长度
}
|