strchr()中的多字符字符常量错误

时间:2016-10-23 14:55:36

标签: c cs50

我正在处理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()函数的方式与分发代码使用它完全相同,我得到一个错误,因为我使用的代码在同一个程序中运行,所以更加令人困惑。

1 个答案:

答案 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;
}