将 char 的值传递到字符串中以用于比较

Passing the value of char into string to be used for comparing

本文关键字:用于 比较 字符串 char 值传      更新时间:2023-10-16

我正在做一个项目,我将使用Arduino(ATMEGA328)和GSM(SIM900)。

收到的消息存储在inchar 中。我能够在串行监视器上打印inchar的值,但我想在inchar中找到一个特定的单词。

有没有办法将该字符传递给字符串,以便我可以使用字符串的子字符串函数?

请帮忙。这是我的代码片段:

#include <SoftwareSerial.h> 
#include <string.h>
char inchar; // Will hold the incoming character from the GSM shield
SoftwareSerial SIM900(2, 3);
//String inchar1;
void setup()
{
  Serial.begin(9600);
  // wake up the GSM shield
  SIM900power(); 
  SIM900.begin(9600);
  delay(20000);
  SIM900.print("AT+CMGF=1r");
  delay(100);
  SIM900.print("AT+CNMI=2,2,0,0,0r"); 
  delay(100);
  Serial.println("Ready....");
}
void SIM900power()
{
  digitalWrite(9, HIGH);
  delay(1000);
  digitalWrite(9, LOW);
  delay(7000);
}
 void loop() 
{
if(SIM900.available() >0)
  {
    inchar=SIM900.read();
    Serial.print(inchar);

}
}

以下是串行监视器中的输出:

+CMT: "+1234567890","","15/01/13,10:51:29+32"
amessage deleted!

我只想比较+1234567890而丢弃其他的。有什么办法可以做到这一点吗?

您可能

希望使用String类而不是数组。看这里: http://arduino.cc/en/Reference/StringObject

yourString.index(",")将允许您找到第一次出现的","。

然后,您将能够使用yourString.substring(start, stop) .