简单解析URL
2015-11-21 00:00
344 查看
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXN 1024+10 char url[MAXN] = "http://study.163.com/curricula/cs.htm"; int main(int argc, char *argv[]) { const char *parseptr1; const char *parseptr2; char host[BUFSIZ]; char resource[BUFSIZ]; int len, i; parseptr2 = url; parseptr1 = strchr(parseptr2, ':'); if(NULL == parseptr1) { printf("protocol: Default <http>\n");/*解析协议*/ parseptr1 = strchr(parseptr2,'/'); len = parseptr1 - parseptr2; if(NULL == parseptr1) /*解析主机名*/ { printf("host: "); for(i = 0; i < strlen(parseptr2); i++) { printf("%c", parseptr2[i]); } strcpy(host, parseptr2); printf("\n"); } else { printf("host: "); for(i = 0; i < len; i++) { printf("%c", parseptr2[i]); } strcpy(host, parseptr2); printf("\n"); } printf("resource: "); /*解析资源名*/ for(i = len; i < strlen(parseptr2); i++) { printf("%c", parseptr2[i]); } strcpy(resource, parseptr2); printf("\n"); } else { len = parseptr1 - parseptr2; printf("protocol: "); /*解析协议*/ for(i = 0; i < len; i++) { printf("%c", parseptr2[i]); } printf("\n"); parseptr1++; /*让parseptr1指向“//”的第一个字符*/ parseptr2 = parseptr1; /*让parseptr2指向“//”的第一个字符*/ for(i = 0; i < 2; i++) { parseptr2++; /*让parseptr2指向“//”后面的第一个字符*/ } parseptr1 = strchr(parseptr2, '/'); len = parseptr1 - parseptr2; printf("host: "); /*解析主机名*/ if(NULL == parseptr1) { for(i = 0; i < strlen(parseptr2); i++) { printf("%c", parseptr2[i]); } strcpy(host, parseptr2); printf("\n"); } else { for(i = 0; i < len; i++) { printf("%c", parseptr2[i]); } strcpy(host, parseptr2); printf("\n"); } printf("resource: ");/*解析资源名*/ for(i = len; i < strlen(parseptr2); i++) { printf("%c", parseptr2[i]); } strcpy(resource, parseptr2); printf("\n"); } return 0; }
相关文章推荐
- UIWebView根据加载的内容自动适应高度
- C++中消除CString类型字符串中的标点符号
- EXPLAIN
- 设计模式----装饰者模式UML和实现代码
- 我的第一篇博客
- 查看cpu信息
- 通过监听端口查看进程号
- Java 使用多线程从网络下载文件
- 润达软件:通达OA在教育行业领域落地生花
- java图形界面初步掌握
- 使用Doxygen来生成Box2d的API文档
- mysql5.6 rpm模式centos安装纪要
- redis安装配置
- hornetq安装配置
- maven安装配置
- Vim笔记
- [拦截器]关于拦截方法调用其他内部方法无法被拦截问题的解决
- [spring]事务传播级别隔离级别以及高并发下的应用经验
- 六、jQuery与Ajax的应用
- 十二、VESA