比较字符串是否一致

在比较两个字符串是否一致时,不能用字符串名称直接比较。因为那样比较的是字符串地址。

正确的方法应使用strcmp()函数

例:

while (node != &head)
{
	SockInfo = CONTAINING_RECORD(node, struct SocketInfo, Entry);
	if (strcmp(SockInfo->UserID, dstID) == 0)
	{
		SendDataLen = strlen(RecvBuffer) + 1;
		Forword = SendPacket(SockInfo, RecvBuffer, SendDataLen);
		SendDataLen = strlen(UserID) + 1;
		IDSend = SendPacket(SockInfo, UserID, SendDataLen);
		break;
	}
	node = node->next;
}

strcmp()函数中的两个字符串等于0,则表示两个字符串相等。

 

另外需要特别注意,类似以上例子中在循环中寻找单一目标时要及时跳出,减少计算资源的浪费。