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

comparing strings when 1 string contains part of the other string

本文关键字:字符串 一部 分时 比较 包含 一个 另一个      更新时间:2023-10-16

我使用以下代码将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
}

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