当前位置:首页>科技>arduino发送字符串将数字转换为字符串
发布时间:2026-07-25阅读(1)
问题
您需要将数字转换为字符串,例如在LCD或其他显示设备上显示数字。

解决方案
使用String变量将数字转换为字符字符串。您可以使用文字值或变量的内容。例如,以下代码将起作用:
String myNumber = String(1234);
或者:
int value = 127;
String myReadout = "The reading was ";
myReadout.concat(value);
或者:
int value = 127;
String myReadout = "The reading was ";
myReadout = value;
讨论
如果您要将数字转换为文本显示在LCD或串行设备上,则最简单的解决方案是使用LCD和Serial库中内置的转换功能(参见“第4.2节”)。但也许您正在使用没有这种内置支持的设备(参见第13章),或者您想在程序中将数字作为字符串操作。
当将数值分配给String变量时,arduino String类会自动将其转换为数字值。您可以使用concat函数或字符串 运算符将数值连接到字符串的末尾。
运算符可用于数字类型和字符串,但是其行为在每种情况下都不同。
以下代码将导致 number 变量的值为 13:
int number = 12;number = 1;
使用 String 类型时,如下所示:
String textNumber = "12";textNumber = 1;
textNumber 的文本字符串为 "121"。
在引入 String 类之前,常见的做法是使用 itoa 或 ltoa 函数。名称源于“整数转 ASCII”(itoa)和“长整数转 ASCII”(ltoa)。前面描述的 String 版本更易于使用,但如果您更喜欢使用 C 字符数组(如第 2.6 节所述),则可以使用以下内容。
itoa 和 ltoa 函数接受三个参数:要转换的值、将容纳输出字符串的缓冲区和数字基数(10 表示十进制数字,16 表示十六进制,2 表示二进制)。
以下示例演示如何使用 ltoa 函数将数字值转换为字符串:
/* * NumberToString * 从给定的数字创建一个字符串 */char buffer[12]; // long 数据类型有 11 个字符(包括负号)和一个终止符 nullvoid setup(){ Serial.begin(9600); while (!Serial); long value = 12345; ltoa(value, buffer, 10); Serial.print(value); Serial.print(" has "); Serial.print(strlen(buffer)); Serial.println(" digits"); value = 123456789; ltoa(value, buffer, 10); Serial.print(value); Serial.print(" has "); Serial.print(strlen(buffer)); Serial.println(" digits");}void loop(){}
你的缓冲区必须足够大,以容纳字符串中的最大字符数。对于16位的十进制整数,这是七个字符(五个数字、一个可能的减号和一个总是表示字符串结尾的终止0);32位长整数需要12个字符的缓冲区(10个数字、减号和终止0)。如果超出缓冲区大小,不会给出警告;这是一个错误,可能会导致各种奇怪的症状,因为溢出会破坏内存中的某些其他部分,这些部分可能会被你的程序使用。处理这个问题的最简单方法是始终使用12个字符的缓冲区,并始终使用ltoa,因为这将适用于16位和32位值。
下一篇:在室内用花卉装饰的布局方法
Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图