gpt4 book ai didi

c++ - String.substring 不返回 true

转载 作者:行者123 更新时间:2023-11-30 01:24:28 24 4
gpt4 key购买 nike

我正在研究一个 Arduino 和 String.substring 似乎没有正常运行,所以我想知道我可能做错了什么....

我的函数如下:

boolean processSerial()
{
String buf;
int iter = 0;
char thisChar;

while(iter < 1000){
if (Serial.available()) {
#if ARDUINO >= 100 //For Arduino v1.0+
{
thisChar = Serial.read();
buf += thisChar;
//if(DEBUG){Serial.print(thisChar);}
}
#else //For Arduino v0023 or earlier
thisChar = Serial.read();
#endif
}
iter++;
}
Serial.print(buf);
Serial.print(buf.substring(0,10));

if(buf.substring(1) == "GPGGA"){
Serial.println("FOUND IT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
}
Serial.println("And we're done");

}

模式“GPGGA”即将出现,但子字符串未返回 true。

我的 Serial 的输出如下:

$GPGGA,053540.000,3804.1237,N,07615.5232,W,1,7,1.39,117.5,M,-33$GPGGA,053And we're done

因此 buf 显然在字符串中包含“GPGGA”。再次显示“GPGGA”的最后一点是字符串中字符 0-10 的打印。为什么我的 if 语句没有返回 true?

最佳答案

buf.substring(1) 返回从位置 1 开始一直到字符串末尾的子字符串。这将以 GPGGA 开头,但它不会等于 GPGGA

如果你知道你比较的字符串的长度是 5 个字符,你可以使用

if (buf.substring(1,1+5) == "GPGGA")
/* ... */

另请注意,预期返回 true 的不是 substring() 函数,而是比较运算符 ==

关于c++ - String.substring 不返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13578040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com