一 说明
(1)应用情况:比如基于socket来实现http协议等,这时候就需要解析URL。
(2)为了移植性,没有用非标准C库windows下的StrDup(linux下为strdup),用自己编写的dup_str。
(3)编译环境:windows ,visual studio2010
二 URL的格式:
(协议)://(主机名):(端口号) / (文件路径)/(文件名)
例如:http://zj.qq.com/a/20130824/002507.htm#p=8
http://www.itpub.net/kwrss/201211/wangzhiduankou.shtml
三 实现
#include //printf
#include //strchr strncmp ,memcpy
#include //malloc free
#include //atoi
//将source开始空间的以NULL结尾的字符拷贝到dest中
//返回的指针需要free
char*dup_str(const char*source)
{
if(source==NULL)
return NULL;
int len = strlen(source);
char *dest = (char*)malloc(len+1);
memcpy(dest,source,len+1);
return dest;
}
//函数功能:解析URL
//参数:ho