找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1316|回复: 1
打印 上一主题 下一主题
收起左侧

C语言长整型数转换为字符串,str-字符串指针,dat-待转换数,返回值-字符串长度

[复制链接]
跳转到指定楼层
楼主
ID:346318 发表于 2021-7-1 22:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
长整型数转换为字符串,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; //返回字符串长度
}




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:161164 发表于 2021-7-2 01:09 | 只看该作者
代码中的len++用作为负号加一个字元长度
而len += i 用作do while loop 内所计得的字元长度(i)加到len中
它们最终的值当然不一样
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表