打印
[其他ST产品]

CubeIDE中数据类型转换是不是有函数库

[复制链接]
241|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 还是裸机?

使用特权

评论回复
5
童雨竹| | 2025-3-13 08:25 | 只看该作者
snprintf 更安全一点,能防止数组越界,snprintf(str, sizeof(str), "%d", num); 这样用更好。

使用特权

评论回复
6
万图| | 2025-3-13 08:26 | 只看该作者
如果是 float 也要转字符串,那就用 sprintf(str, "%.2f", num); 这样保留两位小数。

使用特权

评论回复
7
Wordsworth| | 2025-3-13 08:27 | 只看该作者
C++ 里可以用 std::to_string(num),但是如果是纯 C,那就得 sprintf 或 itoa。

使用特权

评论回复
8
dalarang| | 2025-3-13 08:28 | 只看该作者
int、float转string都是用sprintf函数

使用特权

评论回复
9
Bblythe| | 2025-3-13 08:29 | 只看该作者
sprintf 占资源多,itoa 轻量但兼容性差,自己选吧,看是要便捷还是省资源。

使用特权

评论回复
10
Pulitzer| | 2025-3-13 08:30 | 只看该作者
STM32 的 HAL 库里没提供这种转换函数,这种是标准 C 语言的功能,和 HAL 没关系。

使用特权

评论回复
11
Uriah| | 2025-3-13 08:31 | 只看该作者
其实自己手写也行,循环除 10,把数字拆出来拼字符串,适合内存特别紧张的情况。

使用特权

评论回复
12
Clyde011| | 2025-3-13 08:33 | 只看该作者
STM32 这种小内存的,snprintf 更合适,不容易溢出,snprintf(str, sizeof(str), "%d", num); 这样写比较稳妥。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

11

帖子

0

粉丝