http请求头部信息提取的技巧:
例如如下的字符串text,取出其中Content_length的值
strncasecmp()函数的用法:
头文件为<string.h>
函数原形:
int strncasecmp(const char* s1, const char* s2, size_t n);
作用:比较s1和s2中前n个字符,并判断是否相等
返回值:如果相等则返回0,若s1>s2返回大于0的数,反之返回小于0的数
strspn()函数的用法::
头文件为<string.h>
int strspn(const char* s1, const char* s2);
作用:比较s1的开头有多少个连续的字符是属于s2中的
返回值:如果s1中第一个字符不是s2中的元素,则返回0,否则返回一共有多少个属于s2的连续的字符
例如:strspn(“123abc”,“212bc”)的返回值应该为2
案例代码展示:
#include<string.h>
#include<stdio.h>
int main(){
char* text="Content-Length: 9";
int m_content_length=0;
if ( strncasecmp( text, "Content-Length:", 15 ) == 0 ) {
// 处理Content-Length头部字段
text += 15;
text += strspn( text, " \t" );//跳过冒号:和数字之间的空格
m_content_length = atol(text);
}
return 0;
}
注:参考了web_server服务器开发中的部分代码