当一个字符串包含另一个字符串的一部分时比较字符串
comparing strings when 1 string contains part of the other string
我使用以下代码将packetbuffer与字符串
进行比较char packetBuffer[UDP_TX_PACKET_MAX_SIZE];
!strcmp(packetBuffer, "turn on light")
然而,我怎么能用它来比较一个字符串应该packetbuffer = testing1234和字符串要比较等于"测试",没有最后4个数字?
您要查找的函数是strstr:
if (strstr(packetBuffer, "testing") != NULL)
{
// packetBuffer contains "testing"
// so do something...
}
注意:如果你需要在字符串的开头测试子字符串,那么你可以这样做:
if (strstr(packetBuffer, "testing") == packetBuffer)
{
// packetBuffer starts with "testing"
// so do something...
}
如果你可以使用标准C库,strncmp
是有用的。
长度也要检查,以确保在"测试"之后正好有4个字符(而不仅仅是数字)。
if (strlen(packetBuffer) == 11 && strncmp(packetBuffer, "testing", 7) == 0) {
// they are equal
}
注意,这不是很好的代码,因为使用了一些幻数。