Description

IP是英文Internet Protocol的缩写,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。正是因为有了IP协议,因特网才得以迅速发展成为世界上最大的、开放的计算机通信网络。因此,IP协议也可以叫做“因特网协议”。

互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(IP Address),在Internet上,一种给主机编址的方式。常见的IP地址,分为IPv4与IPv6两大类。

IP地址被用来给Internet上的电脑一个编号。大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信。我们可以把“个人电脑”比作“一台电话”,那么“IP地址”就相当于“电话号码”,而Internet中的路由器,就相当于电信局的“程控式交换机”。

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

现在,根据以下规则,编写程序来判断一个字符串是否是“点分十进制”表示的IP地址。

1 IP地址由四个整数跟三个’.'组成,就是“a.b.c.d”的形式。

2 a,b,c,d四个部分的数字位数都可以是1~3位,其整数值都在0~255之间。

3 不能有除了数字和’.'之外的字符出现。

Input

输入有多行,每行是一个字符串s,s不超过100个字符。到文件尾结束。

Output

对于每个输入,判断串s是否为合法的IP地址,如果正确输出YES,否则NO。

Sample Input

192.168.100.16

Sample Output

YES

HINT

Append Code

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
int main()
{char a[1010],b[10];int i,j,flag,t,n,k,m=0;memset(a,0,sizeof(a));while(scanf("%s",a)!=EOF){flag=0;//赋初值t=0;//记录.的个数n=strlen(a);for(i=0;i<n;i++){if(a[i]=='.')t++;}if(t!=3)flag=2;//flag=2表示为非法IP地址else//继续判断{j=-1;for(i=1;i<=4;i++){m++;memset(b,0,sizeof(b));//初始化bfor(k=0,j=j+1;j<n;k++,j++)//{if(a[j]=='.')break;elseb[k]=a[j];if(b[k]<'0'||b[k]>'9')//判断储存到b中的元素是否为数字{flag=2;break;}}if(flag==2)break;if(k==0||k>3)//若提议中a,b,c,d四个数大于三位,为非法{flag=2;}else{if(k!=1&&b[0]=='0')//此处为排除01.1.1.1类型的情况flag=2;else if(k==3){if((((b[0]-'0')*100+(b[1]-'0')*10+(b[2]-'0'))>255)||(((b[0]-'0')*100+(b[1]-'0')*10+(b[2]-'0')))<=0)flag=2;elseflag+=0;}elseflag=1;}if(flag==2)break;}}if(flag!=2)printf("YES\n");elseprintf("NO\n");memset(a,0,sizeof(a));}return 0;
}

错误点:
1.题意理解:
(1)0-255,包括0与255。
(2) 0.0.0.0是合法IP,01.1.1.1是非法数据。
2.
(1)a,b为字符串,
if((((b[0]-'0')*100+(b[1]-'0')*10+(b[2]-'0'))>255)||(((b[0]-'0')*100+(b[1]-'0')*10+(b[2]-'0')))<=0) flag=2;容易忘记-‘0’。
(2)需要判断字符串b中的元素是否为数字。

1301 IP地址相关推荐

  1. 解绑ip linux,H3C 批量解绑 IP 地址绑定

    单位的H3C交换机端口绑定是如下这样的,其实就是绑定了IP地址嘛,MAC是没有绑的.ip verify source ip-address mac-address 这句话挺有意思的,它的英文意思就是验 ...

  2. js根据ip地址获取省份城市的方法

    今天发现新浪的IP地址查询接口已经访问不了,也就是说不能用了,然后重新试了其他的,找到搜狐的ip地址可以用 不能用 新浪的IP地址查询接口 http://int.dpool.sina.com.cn/i ...

  3. Go 学习笔记(79)— Go 标准库 net(获取本机IP地址)

    1. 获取本机 IP 地址 package mainimport ("fmt""net" )// 获取本机网卡IP func getLocalIP() (ipv ...

  4. Docker 入门系列(5)- Docker 端口映射(映射所有IP地址、映射到指定地址和指定端口、映射指定地址任意端口、查看映射端口配置)

    端口映射 映射容器内应用的服务端口到本地宿主主机 1. 从外部访问容器应用 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的.当容器中运行一些网络应用,要 ...

  5. 分享2020 几个好用的ip地址归属地查询

    ip地址归属地查询接口 一.百度 大公司,不必说,肯定好用,我就一直用的他作为主要查询接口. url:http://opendata.baidu.com/api.php params:query=ip ...

  6. win10安装虚拟机提示主IP地址显示网络信息不可用

    问题:在虚拟机详情下面显示 主ip地址:网络信息不可用 解决方案 先root用户[root@localhost~]#cd - [root@localhost/]#cd /etc/sysconfig/n ...

  7. php dedecms 记录访问者ip,dedecms实现显示访问者ip地址的方法

    有时候我们需要在网站底部或其他地方显示访问者IP地址,这样我们可以在需要的位置放以下代码来显示: {dede:php} $user_IP = ($_SERVER["HTTP_VIA" ...

  8. Android 获取联网的IP地址

    这个方法需要先判断当前应用是否联网 联网判断的方法,请查看 首先你需要确保配置文件应添加了联网的权限 如果没有下面的直接的赋值过去即可 <uses-permission android:name ...

  9. 关于创建zeromq消息队列,设置和更改IP地址,远程可以访问,不只是本地链接。python代码。

    关于zeromq的创建,绑定本地,和绑定其他客户端的方法. 网上一大堆关于zmq的通信模式的介绍,包括三种类型,具体我就不在描述. 但是他们给的demo,都是创建本地作为server服务端,也作为cl ...

最新文章

  1. 计算机删除百度云盘图标,win10系统百度云盘图标删除的操作方法
  2. leetcode-458-Poor Pigs
  3. 逆序数2 HDOJ 1394 Minimum Inversion Number
  4. 网站down掉后,自动发信的shell
  5. springboot 实现策略模式
  6. 提高抗打击能力_孩子抗挫能力差,巧用4个小窍门,引导孩子将“危”化为“机”...
  7. three.js和php,前端图形学(二十二)一切绕过原生WebGl直接上ThreeJs的都是耍流氓
  8. 百度BAE JAVA环境项目部署和调试
  9. Leetcode每日一题:111.minimum-depth-of-binary-tree(二叉树的最小深度)
  10. 高端AP的拆解及保护电路设计
  11. python创建空字典什么意思_Python3基础 dict 创建字典 空字典
  12. 你必须知道的指针基础-6.内存的初始化及结构体的使用
  13. 【2020总结】 一直坚持,一路向前!
  14. 解决谷歌浏览器:Flash插件初始化失败,请更新您的FlashPlayer版本之后重试!
  15. java开发人员工资多少钱_全世界有多少Java开发人员?
  16. html基础实验的实验原理,实验1HTML基本标记的练习
  17. 通过面试思考平时的学习
  18. C++学习笔记27:do while 循环
  19. innodb buffer pool管理--free list
  20. 马云:大数据时代_最重要的是做最好的自己

热门文章

  1. 位运算——左移右移运算详解
  2. 网络直播电视之M3U8解析篇 (下)
  3. HTML网页调用海康摄像头,[FastVideo]Web Html5 无插件方式连接海康摄像头[2]
  4. 【Opencv】无损保存png图片,JPG始终有损
  5. Minor GC和Full GC有什么区别?
  6. NB-IOT修改KV值的方法
  7. CubeMX生成的STM32F4xx MDK工程FPU和DSP库的使用
  8. 一个优秀IT专家的成长历程---献给所有的颓废或即将颓废的人们(ZZ)
  9. 【磁盘调度算法】磁盘调度模拟的设计与分析
  10. flink 相关资料