将 char 的值传递到字符串中以用于比较
Passing the value of char into string to be used for comparing
我正在做一个项目,我将使用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)
.
相关文章:
- C++模板函数,用于比较任何无符号整数和有符号整数
- 不正确的比较和交换计数器输出用于快速排序功能
- C++设置了一个用于排序的比较器和另一个用于唯一性的比较器
- 隐式转换为比较函数对象(函子)用于 std::sort 而不是 std::map?
- 用于基于成员字段或函数创建比较器的快捷方式
- 用于比较基元类型的std::可选的有趣程序集
- 如何实现通用比较?(用于数字和字符串)
- 内置用于比较两个(或多个)值的方式
- 我应该将 lambda 或函子用于比较函数吗?
- 更快的字符串比较排序,用于唯一()
- C++函数,用于比较不同排序算法的运行时
- 如何举例来反驳“==”用于比较“常量字符*”的用法
- 将 char 的值传递到字符串中以用于比较
- 用于比较指针到 NULL 的编码标准
- 编译器错误模板参数列表用于<比较
- 我无法将字符串存储到数组中,然后我想将其用于比较
- 用于比较等式c++的对象的指针
- .cpp文件中的两个名称空间用于比较
- 用于比较给定两个源代码文件的同一c++函数的两个版本的工具
- 用于比较c++头文件与其基文件的开放源码实用程序