我有以下代码
void loop() {
String outMessage = ""; // String to hold input
while (Serial.available() > 0) { // check if at least one char is available
char inChar = Serial.read();
outMessage.concat(inChar); // add Chars to outMessage (concatenate)
}
if (outMessage != "") {
Serial.println("Sent: " + outMessage); // see in Serial Monitor
Serial1.write(outMessage); // Send to the other Arduino
}
我希望用通用的C语言编写它。
Arduino String类是版本0019的核心部分,允许我们以比字符数组更复杂的方式使用和操作文本字符串。
我不知道哪种方式更适合编程。我唯一知道的是String
占用了大量的内存。任何消化?
答案 0 :(得分:2)
没有" Arduino语言"。 Arduinos(以及内部的AVR)使用C,C ++或汇编程序进行编程,Arduino核心库为常见任务提供了一些C函数(以及AVR-libc)和C ++类。您实际尝试做的是将您的代码从C ++转换为C.
具体来说,在C中,字符串是char
的以0结尾的数组,所以你可以这样做:
char welcome[] = "Hello world!";
答案 1 :(得分:0)
不应该太难。我喜欢使用char数组,因为实际上,它并不困难。要连接两个char数组,你必须知道它们的大小,你必须创建一个第三个缓冲区,它是第一个char数组+第二个char数组的大小。唯一的问题是找到尺寸。这可以通过一个简单的结构来完成:
typedef struct String{
int size;
char * chararray;
}String;
然后你必须使用大小malloc the chararray并填充整数值。
其余的很简单。