在Arduino中查找子字符串是否存在
为了检查Arduino中字符串中是否存在特定子字符串,可以使用**indexOf()**函数。这将返回在另一个字符串中搜索到的字符或字符串的第一次出现的索引。如果字符或字符串在给定字符串中不存在,则函数返回-1。
下面的代码给出了示例实现:
示例
void setup() { Serial.begin(9600); Serial.println(); String s1 = "Hello World"; Serial.println(s1.indexOf('e')); Serial.println(s1.indexOf("Wor")); Serial.println(s1.indexOf('z')); Serial.println(s1.indexOf("Wer")); } void loop() { // put your main code here, to run repeatedly: }
串口监视器的输出如下:
输出
正如你所看到的,对于前两种情况,索引被正确返回(计数从0开始,因此'H'的索引为0,'e'的索引为1,依此类推)。"Wor"从索引6开始。对于后两种情况,在s1中找不到搜索到的字符/字符串,因此返回-1。
如果你希望从偏移量开始搜索,你可以向函数提供第二个参数,指定搜索应该从哪个索引开始。
参见下面的代码:
示例
void setup() { Serial.begin(9600); Serial.println(); String s1 = "Hello World"; Serial.println(s1.indexOf('o')); Serial.println(s1.indexOf('o',5)); } void loop() { // put your main code here, to run repeatedly: }
串口监视器的输出是:
输出
正如你所看到的,第一步,返回了"Hello"中'o'的位置(索引4)。之后,当我们指定搜索应该从索引5开始时,返回了"World"中'o'的位置("Hello World"的索引7)。
广告