标题: C语言长整型数转换为字符串,str-字符串指针,dat-待转换数,返回值-字符串长度 [打印本页]

作者: 月下白雪    时间: 2021-7-1 22:02
标题: C语言长整型数转换为字符串,str-字符串指针,dat-待转换数,返回值-字符串长度
长整型数转换为字符串,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; //返回字符串长度
}





作者: lkc8210    时间: 2021-7-2 01:09
代码中的len++用作为负号加一个字元长度
而len += i 用作do while loop 内所计得的字元长度(i)加到len中
它们最终的值当然不一样




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1