我正在尝试比较字符串,以便为正在构建的C服务器中的GET响应做准备。但是我完全停留在strcmp上。这是我的代码:
Char *getPtr;
Char *get = "GET";
getPtr = strstr(message_recieved, get); //In this case we know that the message contains GET
if(strcmp(getPtr, get) == 0)
{
printf("GET RECIEVED!");
}
但是,strcmp的值始终为10。我已打印出GetPtr,它是“ GET”。我在这里做错了什么?我也尝试过使用数组,但是由于strstr仅使用指针,因此我不确定如何将指针转换为数组(对此也有所帮助!)。这是我的第一个问题,请保持友好:)
答案 0 :(得分:2)
从strstr
返回时,getPtr
指向message_recieved
内包含字符串"GET"
的位置,否则为NULL。
由于您的字符串在 之后"GET"
中可能包含更多字符,因此在这种情况下,比较结果将为false。
如果您想知道message_recieved
是否包含"GET"
,只需检查getPtr
是否为NULL:
if(getPtr)
{
printf("GET RECIEVED!");
}