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

时间:2015-09-30 13:29:30

标签: c++ string arduino

我使用以下代码将packetbuffer与字符串进行比较,

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<ul>
		<li>First</li>
		<li>Second
			<ul>
				<li>Second Sub 1</li>
				<li>Second Sub 2</li>
			</ul>
		</li>
		<li>Third</li>
		<li>Third
			<ul>
				<li>Third Sub 1</li>
				<li>Third Sub 2</li>
			</ul>
		</li>
	</ul>

然而我怎么能用它来比较一个字符串应该packetbuffer = testing1234和要比较的字符串等于&#34;测试&#34;,没有最后4位?

2 个答案:

答案 0 :(得分:2)

您正在寻找的功能是strstr

if (strstr(packetBuffer, "testing") != NULL)
{
    // packetBuffer contains "testing"
    // so do something...
}

注意:如果您需要在字符串的开头测试子字符串,那么您可以这样做:

if (strstr(packetBuffer, "testing") == packetBuffer)
{
    // packetBuffer starts with "testing"
    // so do something...
}

答案 1 :(得分:1)

如果您可以使用标准C库,strncmp很有用 检查长度以确保在&#34;测试&#34;之后确实有4个字符(不仅仅是数字)。

if (strlen(packetBuffer) == 11 && strncmp(packetBuffer, "testing", 7) == 0) {
    // they are equal
}

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