[其他ST产品] CubeIDE中数据类型转换是不是有函数库

[复制链接]
623|11
 楼主| 石榴大王 发表于 2025-3-12 22:48 | 显示全部楼层 |阅读模式
想要将整型数据转为字符型,就是int转string型,怎么转?
公羊子丹 发表于 2025-3-13 08:20 | 显示全部楼层
sprintf 试过没?sprintf(str, "%d", num); 直接转换,很方便。
周半梅 发表于 2025-3-13 08:22 | 显示全部楼层
itoa 也可以,不过不是标准函数,有些编译器可能不支持,itoa(num, str, 10); 这样写。
帛灿灿 发表于 2025-3-13 08:23 | 显示全部楼层
这个其实和 CubeIDE 没关系,标准 C 的转换方式就行,看你用的是 HAL 还是裸机?
童雨竹 发表于 2025-3-13 08:25 | 显示全部楼层
snprintf 更安全一点,能防止数组越界,snprintf(str, sizeof(str), "%d", num); 这样用更好。
万图 发表于 2025-3-13 08:26 | 显示全部楼层
如果是 float 也要转字符串,那就用 sprintf(str, "%.2f", num); 这样保留两位小数。
Wordsworth 发表于 2025-3-13 08:27 | 显示全部楼层
C++ 里可以用 std::to_string(num),但是如果是纯 C,那就得 sprintf 或 itoa。
dalarang 发表于 2025-3-13 08:28 | 显示全部楼层
int、float转string都是用sprintf函数
Bblythe 发表于 2025-3-13 08:29 | 显示全部楼层
sprintf 占资源多,itoa 轻量但兼容性差,自己选吧,看是要便捷还是省资源。
Pulitzer 发表于 2025-3-13 08:30 | 显示全部楼层
STM32 的 HAL 库里没提供这种转换函数,这种是标准 C 语言的功能,和 HAL 没关系。
Uriah 发表于 2025-3-13 08:31 | 显示全部楼层
其实自己手写也行,循环除 10,把数字拆出来拼字符串,适合内存特别紧张的情况。
Clyde011 发表于 2025-3-13 08:33 | 显示全部楼层
STM32 这种小内存的,snprintf 更合适,不容易溢出,snprintf(str, sizeof(str), "%d", num); 这样写比较稳妥。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

48

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部