問題:我是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