我正在处理CS50问题集。在这个函数中,我迭代一行,以确保它符合某些规则:“方法SP请求 - 目标SP HTTP版本CRLF”,其中SP是空格,CRLF是回车/新行。
我查看字符串的最后一部分,找到CRLF以确认它是以下列方式存在的:
//needle2 is a subset of the line, here it's the last bit: "HTTP-version CRLF"
const char* needle3 = strchr(needle2, '\r\n');
if (needle3 == NULL)
{
error(400);
return false;
}
编译此代码时出现错误消息:错误:
error: multi-character character constant [-Werror,-Wmultichar]
const char* needle3 = strchr(needle2, '\r\n');
我知道我在一个函数中寻找多个字符,一次只能包含1个字符。 但是,如何在没有多字符错误的情况下查找CRLF以确保它存在?
我尝试使用strstr()函数的方式与分发代码使用它完全相同,我得到一个错误,因为我使用的代码在同一个程序中运行,所以更加令人困惑。
答案 0 :(得分:0)
正如Paul Ogilvie所说:
//needle2 is a subset of the line, here it's the last bit: "HTTP-version CRLF"
const char* needle3 = strstr(needle2, "\r\n");
if (needle3 == NULL)
{
error(400);
return false;
}