网址http格式的拆分
❤️强烈推荐人工智能学习网站❤️
今天要写一个接口,对网址进行http格式的拆分,这也算是http入门级的一个简单字符串处理操作。虽然算法不是很复杂,但其中的代码规范还是值得新手注意的。我下面的代码目的是从网址中获取host,并进行http请求的拼接。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>void getHost(const char http[],char host[],char request[])//不可修改设为const
{if(NULL==http || NULL==host || NULL==request)//传入的指针一定要判空exit(0);if('\0'==http[0]){printf("http is empty\n");exit(1);}int i,j=0,flag=0;if('h'==http[0]&&'t'==http[1]&&'t'==http[2]&&'p'==http[3]&&':'==http[4]&&'/'==http[5]&&'/'==http[6])//这里含有逻辑运算{for(i=0;http[i]!='\0';i++){if('/'==http[i]&&0==flag){ i+=2;if('/'!=http[i]){while('/'!=http[i]){host[j++]=http[i++];}}flag=1;}}host[j]='\0';}else{for(i=0;http[i]!='\0';i++){if(0==flag){while('/'!=http[i]){host[j++]=http[i++];}flag=1;}}host[j]='\0';}sprintf(request,"GET %s HTTP/1.1\r\nHost:%s\r\nConnection: Keep-Alive\r\n\r\n",http,host);
}void getHost1(const char http[],char host[],char request[])
{if(NULL==http || NULL==host || NULL==request)exit(0);if('\0'==http[0]){printf("http is empty\n");exit(1);}int i=0,j=0,flag=0;int num=strncmp(http,"http://",7);if(0==num){i+=7;}for(;http[i]!='\0';i++){ if('/'!=http[i]&&0==flag){while('/'!=http[i]){host[j++]=http[i++];}flag=1;}}host[j]='\0';sprintf(request,"GET %s HTTP/1.1\r\nHost:%s\r\nConnection: Keep-Alive\r\n\r\n",http,host);
}int main()
{char http[100]="http://blog.csdn.net/stpeace/article/details/73028821";char *host = NULL;//host主机char *request = NULL;//请求//request需要较大内存,所以这里用栈存储不合适,用malloc分配内存,这里一次性分配host和request两个占用的内存host = (char *)malloc(100+2803);//前面100个存host主机if(NULL==host){return 0; }request = host +100;getHost1(http,host,request);printf("%s\n",request);return 0;
}
从网址中获取host首先要判断网址中是否含有http,要能同时处理这两种情况。变量取名时,也应该按大致英文取名,便于直观看。
网址http格式的拆分相关推荐
- 获取网页或文件中的邮箱地址/网址 格式
1.获取邮箱地址格式: egrep regex: [A-Za-z0-9.]+@[A-Za-z0-9.]+\.[a-zA-Z]{2,4} 格式说明: 邮件地址格式为 name@domain.some_2 ...
- URL网址的正则检验(验证字符串是否符合URL网址的格式)
[ 学习探索过程中记下的点点笔记,以供分享,欢迎大家一起学习探讨-如有雷同可附链接,谦虚学习!] URL网址的组成部分: 协议:// =>协议有http/https/ftp (可有可无) 域名 ...
- 【VBA】Excel拆分表格,并且复制格式
需求 1.将总表根据[销售部门]拆分成不同的表格 2.拆分后保持格式不变 拆分前 总表 拆分后 表结构 一部 二部 七部 代码如下 Sub cfgzb() '拆分工作表Dim i As Integer ...
- python基础===拆分字符串,和拼接字符串
给定某字符,只需要保留其中的有效汉字或者字母,数字之类的.去掉特殊符号或者以某种格式进行拆分的时候,就可以采用re.split的方法.例如 ============================== ...
- php检测网址是否有效,php 检测因特网址是否有效
php 检测网址是否有效 1. ?网址的格式: ?function checkUrl($weburl) { return !ereg("^http(s)*://[_a-zA-Z0-9-]+( ...
- 数组的定义格式三_省略的静态初始化
package com.learn.day05.demo01;/* 使用静态初始化数组的时候,格式还可以省略一下.标准格式: 数据类型[] 数组名称 = new 数据类型[] { 元素1, 元素2, ...
- 分享几个病毒分析检测网址
1.在线病毒分析网站: 以下网站上传样本后,很快就会在网页上出报告的: (1)这个网址报告格式很简洁,我很喜欢:http://camas.comodo.com/ (2)这个网址的报告最全面,而且会真的 ...
- php 检测网址是否有效
1. 网址的格式: function checkUrl($weburl) { return !ereg("^http(s)*://[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-] ...
- 计算机电子邮箱格式,英语邮箱格式,电子邮件格式范文!
英语电子邮件该怎么写? 一封邮件的基本内容通常分为三部分:收件人.主题.正文.1.接收人.接收人为传递信息或分布任务的对象.除了接收人之外还可以同时抄送给其他人,抄送对象要看.电子邮件的格式和范文 电 ...
最新文章
- Asp.net下实现隐藏真实下载地址(可以实现简单的防盗链)
- VS2005+SQL2005 ASP.NET2.0数据库连接
- Linux下 SpringBoot jar项目后台运行、查看、停用
- vue 引入swiper4,在有些手机Dom7会有问题
- 成功解决ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() o
- java卡片布局显示效果_三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)...
- SpringMVC——Maven项目依赖包
- LeetCode 39. 组合总和(排列组合 回溯)
- 《计算机网络:自顶向下方法(原书第6版)》一2.7 TCP套接字编程
- LAMP+Zabbix课程总结
- python如何使用本地数据库_使用Python在虚拟机上怎么连接本地数据库
- iOS开发--底部按钮和应用图标显示未读消息
- shell中find某个文件排除某个目录
- 人工智能实验——八数码难题
- Codesys + BeagleBone PLC控制达到小儿科水平
- 开源协议及应用 (BSD/GPL/LGPL/Apache/MIT)
- IT十年人生过客-十八-路过机遇
- C++ GBD调试
- 酸狗带你进入JAVA世界
- 花指令的原理和常用花指令收集