string - 在 Arduino 上将 int 或 String 转换为 char 数组

标签 string char arduino

我从 Arduino 上的一个模拟引脚获取一个 int 值。如何将其连接到 String,然后将 String 转换为 char[]

有人建议我尝试 char msg[] = myString.getChars();,但我收到一条消息,指出 getChars 不存在。

最佳答案

  1. 要转换并附加整数,请使用 operator += (或成员函数concat):

     String stringOne = "A long integer: ";
     stringOne += 123456789;
    
  2. 要获取 char[] 类型的字符串,请使用 toCharArray() :

     char charBuf[50];
     stringOne.toCharArray(charBuf, 50)
    

在示例中,只有 49 个字符的空间(假设以 null 结尾)。您可能希望使尺寸动态化。

开销

引入 String 的成本(如果不在草图中的任何地方使用,则不包括在内)大约为 1212 字节程序存储器(闪存)和 48 字节 RAM。

这是使用 Arduino IDE 版本 1.8.10 (2019-09-13) 对 Arduino Leonardo 草图进行测量的。

风险

必须有足够的可用 RAM。否则,结果可能是应用程序锁定/卡住或其他奇怪的行为( UB )。

关于string - 在 Arduino 上将 int 或 String 转换为 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7383606/

相关文章:

c++ - 将字符串从托管列表框拉到 char* 类型的类变量中

c - 在 C 中,如何将一个字符串分成 3 个短裤,并将其余的字符串分成一个字符串(该字符串作为其中的空格)?

c - 如何将现有字符串中包含的 (ASCII) 字母字符复制到新字符串中

c - Arduino的MODBUS协议(protocol)

python - 定义引脚时出现 InvalidPinDefError

android 无法以编程方式连接到 wifi 网络(几秒钟后掉线并返回到上一个)

使用 sprintf() 函数后 C 字符字符串不可读

javascript - 用于检查多个匹配项的正则表达式

string - Delphi 7,字符串问题

c - 使用指针数组中的函数更改字符串位置