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'?