MyHandler.h中的全局函数GetAttribute
来源:互联网 发布:武汉php培训 编辑:程序博客网 时间:2024/06/05 00:14
//用static修饰使得该全局函数只在MyHandler.h中可见static bool GetAttribute(const char *s, const char *key, AString *value) { //返回值由参数value传回 //先将value的内存清零 value->clear(); //得到关键字key的字符长度 size_t keyLen = strlen(key); //由于传进来的参数的组织方式是 //每一段为一字符串,段与段之间用分号';'隔开 //需要查找的关键字key可能在某一段中 //形如:"*****;*****;key=***;***" //循环处理每个段,直到key所在的那个段或者遇到结尾 for (;;) { //跳过该段的空格字符 while (isspace(*s)) { ++s; } //从位置s开始查找第一个出现的分隔符';' //目的是定界一个段 const char *colonPos = strchr(s, ';'); //计算该段的长度len //如果colonPos == NULL说明从位置s开始到结尾没有分隔符';' //则从位置s开始到结尾是最后一段 //否则从位置s到位置colonPos为一段 size_t len = (colonPos == NULL) ? strlen(s) : colonPos - s; //此时该段的实际内容被定界为s[0,len-1] if (len >= keyLen + 1 && s[keyLen] == '=' && !strncmp(s, key, keyLen)) { //s[keyLen] == '=' 和 !strncmp(s, key, keyLen)为真说明s[0,keyLen-1]为关键字key //将该段关键字key=后的内容赋值给value //函数返回true,表示成功找到了key所对应的内容 value->setTo(&s[keyLen + 1], len - keyLen - 1); return true; } if (colonPos == NULL) { //代码执行到这里说明 //首先colonPos == NULL是最后一段,但是 //并没有从前面的if语句里返回 //说明直到查找到最后一段也没有找到符合key关键字的一段 //函数返回false表示查找失败 return false; } //迭代处理下一段 s = colonPos + 1; }}
0 0
- MyHandler.h中的全局函数GetAttribute
- MyHandler.h对消息"accu"的处理
- MyHandler.h中RTSP流的连接
- lua中的全局函数
- string.h中的函数
- string.h中的函数
- string.h中的函数
- string.h中的函数
- string.h中的函数
- string.h中的函数
- string.h中的函数
- string.h中的函数
- math.h中的函数
- AFX中的全局函数列表
- AFX中的全局函数列表
- AFX中的全局函数列表
- AFX中的全局函数列表
- AFX中的全局函数列表
- 背景建模或前景检测(Background Generation And Foreground Detection) 三
- DOM基础知识
- 中国(北方)大学生程序设计训练赛(第二周)(Problem C: A Water Problem-dp)
- iOS中atomic和nonatomic的区别
- 页面到后台参数乱码
- MyHandler.h中的全局函数GetAttribute
- CSP-201512-2 消除类游戏
- test
- jetty和tomcat解析xml路径区别
- ubuntu 设置
- JSP Cookies 处理
- 梦想因破灭而成长,梦想因实现而伟大
- Centos6.5 glibc 升级
- re-download dependencies and sync已解决