Javascript C:字符串操作和Arduino

Javascript C:字符串操作和Arduino,javascript,c,arduino,Javascript,C,Arduino,我正在学习用Arduino编程,据我所知,它使用C语言(如果我错了,请纠正我) 我是JavaScript和PHP的大四学生,现在我很难处理简单的东西,比如字符串处理 如果用JavaScript,我有 var c = 33; var myString = "hello" + c; alert(myString); //---> hello33 在C/Arduino中它是如何工作的?在C中,您可以执行以下操作: char buff[100]; // needs to be large eno

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

我是JavaScript和PHP的大四学生,现在我很难处理简单的东西,比如字符串处理

如果用JavaScript,我有

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

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

在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语言是一种需要自己管理一些低级细节的语言。基本语言/库中没有自动扩展的字符串类型,尽管无疑有一些很好的第三方类型(例如,因为它不会拖入很多其他您不想要的东西,在嵌入式空间中尤其重要)。

Arduino具有内置的,在这方面您可以:

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

// or

stringTwo.concat(123456789);

如果这两种情况下都得到一个长整数:123456789

,我强烈建议使用两个帮助程序库。这些组合使得使用字符串变得更加容易

电话铃: 所以你可以写

str.print("The temperature is ");
str.print(temp);
str.println(" degrees.");
// do something with str here
lcd << "GPS #" << gpsno << " date: " << day << "-" << month << "-" << year << endl;

流媒体: 所以你可以写

str.print("The temperature is ");
str.print(temp);
str.println(" degrees.");
// do something with str here
lcd << "GPS #" << gpsno << " date: " << day << "-" << month << "-" << year << endl;

lcd与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++)代码之间的其他重要区别是:

  • 您需要一个
    设置
    循环
    功能,而不是
    功能<当Arduino板通电时,代码>设置
仅运行一次,然后持续执行
循环
  • Arduino中JavaScript的
    警报
    最接近的等价物是写入串行端口。要查看此输出,您需要将Arduino板连接到PC。在Arduino IDE中,打开串行监视器将允许您查看输出

  • 最好是从问题中获得,而不是试图通过问问题来学习语言……不,它使用的是类似C++和JavaNo的,它使用的是布线,我认为它是从处理中窃取IDE,但使用简化的C++作为基础语言:-)C++。这就是全部。ARDUIO网站隐藏了这一点,但它是真正的C++与一个真正的C++编译器(AVR GCC)。与处理无关(基于java)。@ EELVEX:Wikipia的前三段和我自己的经验支持PaxDiBiLo和文森特-它基本上是C++加上一些附加的噱头。+ 1。不确定Arduino上是否有
    snprintf
    ,但如果有,可以使用它来确保您不会使用比预期更多的
    char
    。应该是
    “hello%d”
    ?是的,我想我会将其格式设置得更好一点,但为了准确起见,我会将其更改回来。@dreamlax:是的,如果添加stdio.h头,snprintf是可用的,因为它包含在AVRCC的组件中。