匹配字符串文本我對如何匹配文本的一些問題與Arduino的。如何在Arduino的
我:
String tmp = +CLIP: "+37011111111",145,"",,"",0
,我試圖匹配:
if (tmp.startsWith("+CLIP:")) {
mySerial.println("ATH0");
}
但是這是不工作的,我不知道爲什麼。
我試過substring
,但結果是一樣的。我不知道如何使用它或什麼也沒有發生。
錯誤在哪裏?
匹配字符串文本我對如何匹配文本的一些問題與Arduino的。如何在Arduino的
我:
String tmp = +CLIP: "+37011111111",145,"",,"",0
,我試圖匹配:
if (tmp.startsWith("+CLIP:")) {
mySerial.println("ATH0");
}
但是這是不工作的,我不知道爲什麼。
我試過substring
,但結果是一樣的。我不知道如何使用它或什麼也沒有發生。
錯誤在哪裏?
bool Contains(String s, String search) {
int max = s.length() - search.length();
for (int i = 0; i <= max; i++) {
if (s.substring(i) == search) return true; // or i
}
return false; //or -1
}
否則,你可以簡單地做:
if (readString.indexOf("+CLIP:") >=0)
我還建議您訪問:
我修改從gotnull代碼。感謝他讓我走上了賽場。
我只是限制搜索字符串,否則子字符串函數並不總是返回正確的答案(當substrign沒有結束字符串時)。因爲子字符串總是搜索到字符串的末尾。
int StringContains(String s, String search) {
int max = s.length() - search.length();
int lgsearch = search.length();
for (int i = 0; i <= max; i++) {
if (s.substring(i, i + lgsearch) == search) return i;
}
return -1;
}
//+CLIP: "43660417XXXX",145,"",0,"",0
if (strstr(command.c_str(), "+CLIP:")) { //Someone is calling
GSM.print(F("ATA\n\r"));
Number = command.substring(command.indexOf('"') + 1);
Number = Number.substring(0, Number.indexOf('"'));
//Serial.println(Number);
} //End of if +CLIP:
這是我正在做。希望能幫助到你。
if (tmp.startsWith(String("+CLIP:"))) {
mySerial.println("ATH0");
}
你不能把引號只需要轉換的變量:)
如何在第一線,甚至編譯(我試過在Arduiono /線路)的字符串?什麼是CLIP?你可以發佈工作/可編譯的代碼(例如mySerial的聲明)嗎? – 2011-02-18 15:32:44
彼得在這個例子中是行不通的。我只是把這個例子,我從Arduino串行監視器得到。我用**子串**解決了我的問題,讓任何人都知道,串口監視器中的Arduino不會顯示\ r和\ n,那是我最大的問題。 – Min2liz 2011-02-21 07:08:37