C strtok在查找新行字符时失败(“\n”)

C strtok在查找新行字符时失败(“\n”),c,strtok,trendline,C,Strtok,Trendline,以下是函数: int parse_headers(c_request *req, char *raw_headers) { char *command_line; char *raw_header; req->headers = NULL; command_line = strtok_r(raw_headers, "\\n", &raw_headers); printf("command line = [%s

以下是函数:

int parse_headers(c_request *req, char *raw_headers) {
    char *command_line;
    char *raw_header;

    req->headers = NULL;

    command_line = strtok_r(raw_headers, "\\n", &raw_headers);
    printf("command line = [%s]\n", command_line);
    if (parse_command(req, command_line) < 0)
        return -1;
    while ((raw_header = strtok_r(raw_headers, "\\n", &raw_headers))) {
        printf("\nraw header = [%s]\n", raw_header);
        parse_header(req, raw_header);
    }
    return 0;
}
int parse_头(c_请求*req,char*raw_头){
char*命令行;
char*raw_头;
req->headers=NULL;
命令行=strtok\u r(原始标题,\\n,&raw\u标题);
printf(“命令行=[%s]\n”,命令行);
if(解析命令(请求,命令行)<0)
返回-1;
while((原始\u头=strtok\u r(原始\u头,\\n,&raw\u头))){
printf(“\nraw头=[%s]\n”,原始头);
解析_头(请求、原始_头);
}
返回0;
}
原始页眉相等:

POST www.google.fr HTTP/1.1\n用户代理:Mozilla/4.0(兼容;MSIE5.01;Windows NT)\n主机:www.tutorialspoint.com\n内容类型:text/xml;charset=utf-8\n内容长度:38\n接受语言:en-us\n接受编码:gzip,deflate\n连接:保持活动\r\n\r\n为
strtok\u r
指定的分隔符
“\\n”
由两个字符组成:
'\\\\\\\\\\\\\\\\\\\\\\\
'n'
。在
用户年龄之后有一个
n
,因此数据被剪切到那里

您应该使用
“\n”
搜索LF

如果您确实想用多字符字符串分隔数据,
“\\n”
,则
strtok\u r
不适用于此。您应该手动执行此操作,可以使用。

strtok\u r
指定的分隔符
“\\n”
由两个字符组成:
'\\\'
'n'
。在
用户年龄之后有一个
n
,因此数据被剪切到那里

您应该使用
“\n”
搜索LF


如果您确实想用多字符字符串分隔数据,
“\\n”
,则
strtok\u r
不适用于此。您应该手动操作,也许可以使用。

嗯。。。。您使用的是由反斜杠(
\
)和字符
n
构成的分隔符,而不是新行(新行必须写为
\n
,而不是
\\n
。您可以尝试检查它如何使用n或反斜杠解析字符串,您将看到它如何在这两个字符处打断字符串。

嗯……您使用的是由反斜杠(
\
)和字符
n
组成的分隔符,而不是新行。)(新行必须写为
\n
,而不是
\\n
。您可以尝试检查它如何使用n或反斜杠解析字符串,您将看到它如何在这两个字符处打断字符串。

命令行=strtok\u r(原始标题,\\n,&raw\u标题);
肯定是错误的。
命令行=strtok\r(原始标题,\\n“,&raw_headers);
肯定是错误的。我如何使用strstr获得与strtok相同的结果?再次感谢@MikeCATHow我可以使用strstr获得与strtok相同的结果吗?再次感谢@MikeCAT
POST www.google.fr HTTP/1.1\nUser-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)\nHost: www.tutorialspoint.com\nContent-Type: text/xml; charset=utf-8\nContent-Length: 38\nAccept-Language: en-us\nAccept-Encoding: gzip, deflate\nConnection: Keep-Alive\r\n\r\n<?xml version='1.0' encoding='utf-8'?