C:将字符串解析为键值对

时间:2014-03-05 15:22:42

标签: c parsing

是否有一种简单的方法可以将字符串解析为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

1 个答案:

答案 0 :(得分:4)

“简单”取决于您希望代码的健壮性和安全性。

您可以在循环中使用strchr(),重复查找空格和换行符,并memcpy()将字符串的这些部分复制到您想要的结构中。

或者您可以使用strtok()就地填充字符串,同时收集指针。

或者你可以更精细。这是Apache HTTPd中代码的链接,可以完成此任务:http://svn.apache.org/repos/asf/httpd/httpd/trunk/server/apreq_parser_header.c