在Arduino中将字符串转换为字符数组


有很多为Arduino构建的库,其函数使用字符数组作为输入而不是字符串。幸运的是,Arduino有一个内置方法( **toCharArray()** )可以将字符串转换为字符数组。下面给出一个示例实现:

示例

void setup() {
   // put your setup code here, to run once:
   Serial.begin(9600);
   String s1 = "Hello World!";
   char buf[30];

   s1.toCharArray(buf,6);
   Serial.println(buf);

   s1.toCharArray(buf,s1.length());
   Serial.println(buf);
}
void loop() {
   // put your main code here, to run repeatedly:
}

如你所见, **toCharArray** 函数有两个参数:存储字符串字符的数组,以及要转换的字符数量。我们最初只将字符串的前5个字符转换为字符数组。请注意,我们指定长度为6而不是5,因为最后一个字符保留给字符串终止符('0')。因此,如果希望字符串包含N个字符,则在长度参数中输入N+1。

这意味着第一个打印语句只会打印“Hello”。在下一次尝试中,将打印整个字符串,因为我们已将长度参数指定为等于字符串的长度。但是,正如你从下面的输出中看到的,末尾的感叹号(!)丢失了。同样,这是因为理想情况下,我们应该将长度参数指定为字符串长度+1。确保你转换的字符数量不超过你的字符数组可以存储的数量。

串口监视器的输出如下所示:

输出

更新于:2021年3月24日

9K+ 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.