问题:我是C++的新手,在编写以下代码后,似乎应该有一种方法来缩短它。也许通过某种方式匹配字符串?这将如何完成?基于匹配字符串模式来简化函数
该函数接收通过串口接收到的字符串message
,并根据message
设置pinValues[]
数组中某个元素的值。将设置的值取决于\n
之前的最后一个字符H
或L
。
字符串模式:(a number)(H or L)\n
例如:message == "4H\n"
将所述第五元件pinValues[4]
设置为HIGH
。字符串开头的数字可以是1至2位数字。
void setPinValues(String message) {
if(message == "1H\n") {
pinValues[1] = HIGH;
}
if(message == "1L\n") {
pinValues[1] = LOW;
}
if(message == "2H\n") {
pinValues[2] = HIGH;
}
if(message == "2L\n") {
pinValues[2] = LOW;
}
if(message == "3H\n") {
pinValues[3] = HIGH;
}
if(message == "3L\n") {
pinValues[3] = LOW;
}
if(message == "4H\n") {
pinValues[4] = HIGH;
}
if(message == "4L\n") {
pinValues[4] = LOW;
}
if(message == "5H\n") {
pinValues[5] = HIGH;
}
if(message == "5L\n") {
pinValues[5] = LOW;
}
if(message == "6H\n") {
pinValues[6] = HIGH;
}
if(message == "6L\n") {
pinValues[6] = LOW;
}
}
你应该使用std ::地图 – Borgleader