C:字符串操作和Arduino

时间:2012-04-08 01:57:40

标签: javascript c arduino

我正在学习在Arduino中编程,据我所知,它使用的是C语言(如果我错了,请纠正我)。

我是JavaScript和PHP的高级管理员,现在我很难处理字符串处理等简单的事情。

如果在JavaScript中我有

var c = 33;
var myString = "hello" + c;
alert(myString); //---> hello33

它在C / Arduino中是如何工作的?

4 个答案:

答案 0 :(得分:3)

在C中,您可以执行以下操作:

char buff[100]; // needs to be large enough.
int c = 33;
sprintf (buff, "hello%d", c); // may want a space after hello

// Now do something with buff.

C是一种您需要自己管理一些低级细节的语言。基本语言/库中没有自动扩展的字符串类型,但毫无疑问,有一些好的第三方类型("better strings",例如,因为它不会拖累很多其他的东西你不会想要,在嵌入式领域特别重要。)

答案 1 :(得分:2)

Arduino有内置的String class,你可以这样做:

String stringOne = "A long integer: ";
// using += to add a long variable to a string:
stringOne += 123456789;

// or

stringTwo.concat(123456789);

如果两种情况都得到"A long integer: 123456789"

答案 2 :(得分:2)

我强烈建议使用2个辅助库。这些使得使用字符串变得更加容易!

pstring类型: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236036180 所以你可以写...

str.print("The temperature is ");
str.print(temp);
str.println(" degrees.");
// do something with str here

流: http://arduiniana.org/libraries/streaming/ 所以你可以写......

lcd << "GPS #" << gpsno << " date: " << day << "-" << month << "-" << year << endl;

答案 3 :(得分:0)

与Arduino草图等效的JavaScript代码是:

void setup() {
  Serial.begin(9600);
  int c = 33;                 // var c = 33;
  String myString = "hello";  // var myString = "hello"
  myString += c;              //                        + c;
  Serial.println(myString);   // alert(myString); //---> hello33
}

void loop() {
}

对于字符串处理,JavaScript和Arduino(C ++)代码之间的区别是:

  • 变量是强类型的。例如,您需要在声明时指示变量是整数(int)还是字符串(String)。
  • 字符串不是C ++中内置的“原始”类型(并且C ++的Arduino版本也不支持C ++标准库字符串)因此一些简单的操作不能作为单个语句执行。例如,赋值和连接需要两行Arduino代码。

您的JavaScript和Arduino(C ++)代码之间的其他重要区别是:

  • 您需要setuploop功能,而不是main功能。当电源应用于Arduino电路板时,setup仅运行一次,然后loop不断执行。
  • Arduino中与JavaScript alert最接近的等价物是写入串口。要查看此输出,您需要将Arduino板连接到PC。在Arduino IDE中,打开串行监视器将允许您查看输出。