当 1 个字符串包含另一个字符串的一部分时比较字符串

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 和要比较的字符串等于 "testing",而没有最后 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就很有用。
还检查长度以确保在 "testing".

之后恰好有 4 个字符(不仅仅是数字)
if (strlen(packetBuffer) == 11 && strncmp(packetBuffer, "testing", 7) == 0) {
    // they are equal
}

请注意,这不是很好的代码,因为使用了一些幻数。