【发布时间】:2021-05-16 16:02:25
【问题描述】:
我在子字符串中得到了分隔符“\r\n\r\n”,而strstr返回null
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int ac, char **av) {
char *ptr;
ptr = strstr(av[1], "\r\n\r\n");
printf("ptr = %s\n", ptr);
return 0;
}
我用这个启动代码:
./a.out "POST /cgi-bin/process.cgi 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: length\nAccept-Language: en-us\nAccept-Encoding: gzip, deflate\nConnection: Keep-Alive\r\n\r\n<?xml version='1.0' encoding='utf-8'?>"
而ptr等于(null),为什么?
【问题讨论】:
-
删除了我的评论,伙计们是对的:需要转义反斜杠。
-
strstr()在没有找到搜索到的字符串时返回NULL。您可以在strstr()的手册页中查看。