有没有一种简单的方法可以将字符串解析为k,v对?
GET / HTTP/1.1
Host: localhost:1337
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie: JSESSIONID.e5614f49=1ns34hepyv53k1hg1o78k3z4zy; screenResolution=1920x1080
Connection: keep-alive
Run Code Online (Sandbox Code Playgroud)
“简便”取决于您希望代码的健壮性和安全性。
您可以strchr()在循环中使用,以反复查找空格和换行符,并将memcpy()字符串的那些部分复制到所需的结构中。
或者,您可以strtok()在将指针收集到其中的同时就地保留字符串。
或者,您可以进行更详细的说明。以下是指向Apache HTTPd中的代码的链接,以完成此任务:http : //svn.apache.org/repos/asf/httpd/httpd/trunk/server/apreq_parser_header.c