Problem Description
在网络课程上,我学到了很多有关IP的知识。IP全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如192.168.100.16,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。 但是粗心的我,常常将IP地址写错,现在需要你用程序来判断。
Input
输入有多个case,每个case有一行,不超过100个字符。
Output
对于每个case,判断输入的IP是否正确,如果正确输入YES,否则NO。
Sample Input
192.168.100.16
Sample Output
YES
//这是一道神坑之题!!
//我要冷静!!我要冷静!!不能摔电脑!!
//具体注意事项看代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;int main()
{char data[105];int flag,t;while(gets(data)){flag=1;//假设是对的for(int i=0;i<strlen(data);i++)//第一步,先找是否有特殊符号
        {if((data[i]<'0'||data[i]>'9')&&data[i]!='.')flag=0;}//第二步,看是否有且只有三个'.'int cnt=0;for(int i=0;i<strlen(data);i++){if(data[i]=='.')cnt++;}if(cnt!=3)flag=0;//第三步,看两个点之间的长度是否是1~3位;int num=0,l,k=0;;char p[100];l=strlen(data);data[l]='.';data[l+1]='\0';t=0;int wei=0;for(int i=0;i<=strlen(data);i++){if(data[i]!='.')wei++;else if(data[i]=='.'&&data[i-1]!='.'){if(wei<1||wei>3)flag=0;wei=0;}}//第四步,看数字是不是1~255for(int i=0;i<=strlen(data);i++){if(data[i]!='.'){p[k]=data[i];k++;}else if(data[i-1]!='.'&&i>0){p[k]='\0';num=atoi(p);if(num>255)//if(num<1||num>255)此处是此题神坑位置。。。因为000.3.3.3是正确的。。flag=0;k=0;t++;}}if(t!=4)flag=0;if(flag==0)cout<<"NO"<<endl;if(flag==1)cout<<"YES"<<endl;}return 0;
}

转载于:https://www.cnblogs.com/nefu929831238/p/5329852.html

HDU2206:IP的计算相关推荐

  1. HDU2206 IP的计算【文本处理】

    IP的计算 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  2. 计算机网络-IP数据报计算(IP数据报分片)一个数据报部分长度为3400字节(使用固定首部)。现在经过一个网络传输,该网络的MTU为800字节:

    IP数据报计算(IP数据报分片) 题目: 一个数据报部分长度为3400字节(使用固定首部).现在经过一个网络传输,该网络的MTU为800字节: (1)应分为几个数据报片? (2)各数据报片的数据字段长 ...

  3. 【Linux 网络】IP校验和计算相关

    校验和只是为防止报文在信道传输出现误码导致报文错误,并不保证报文被他人恶意篡改. 转发报文相关的校验和包括3层校验和4层校验,2中的校验和的计算公式的入参不同:3层校验仅仅校验3层头:4层校验需要校验 ...

  4. vivado CORDIC ip核计算arctan记录

    文章目录 前言 一.CORDIC ip核配置 二.CORDIC ip核接口 三.仿真波形 四.工程文件 前言 本文主要记录自己使用vivado CORDIC ip 核计算arctan的过程. 一.CO ...

  5. ip地址覆盖计算 python_python关于ip的计算-IPy

    工作中,我们有时候会遇到要计算一个ip或者网段是否在另一个网段中.有时候会判断两个网段是否重叠.这时使用IPy会方便很多. 下列的shell是IPy的安装: cd /usr/local wget ht ...

  6. 彻底明白IP地址——计算相关地址

    通过IP地址和子网掩码与运算计算相关地址 知道ip地址和子网掩码后可以算出: 1. 网络地址 2. 广播地址 3. 地址范围 4. 本网有几台主机 例1:下面例子IP地址为192·168·100·5 ...

  7. 网络布线的概念和IP的计算

    网络布线与IP计算 一.IP的基本概念 1.什么是子网? 2.什么是主机位? 3.子网的计算公式 4.主机位的计算公式 5.可用IP的公式 二.网络布线 1.双绞线 2.双绞线的分类 3.双绞线的标准 ...

  8. 【计算机网络】彻底明白IP地址——计算相关地址

    知道ip地址和子网掩码后可以算出: 1. 网络地址 2. 广播地址 3. 地址范围 4. 本网有几台主机 例1:下面例子IP地址为192·168·100·5 子网掩码是255·255·255·0.算出 ...

  9. oracle ip地址 计算,【翻译自mos文章】怎么正确的计算一个ip地址的subnet id?

    怎么正确的计算一个ip地址的subnet id? 来源于: How to calculate the correct subnet for an interface (文档 ID 1059759.1) ...

最新文章

  1. 目标检测R-CNN模型的CNN模块微调过程分析【全网最易懂】
  2. 如何动态修改下拉列表的默认选中项
  3. 小米第三季经调整利润29亿 获美图智能手机全球授权
  4. linux分区转换gpt命令,Linux中磁盘如何转换GPT格式
  5. python文件系统_你应该知道的10个Python文件系统方法
  6. 7-69 计算圆周率 (15 分)
  7. Maven学习总结(41)——Maven依赖范围、传递、排除详解
  8. Java 如何查询硬盘所有文件
  9. json替换table下的所有值_京东云所有地域正式支持 MySQL 8.0!
  10. 小猿圈之测试用例的八大要素
  11. Django 学习 Blog 实操 19 --- 统计分类、标签云下的文章数目
  12. SD/SDHC卡下载UBOOT 的注意事项
  13. 写一函数,将两个字符串中的元音字母复制到另一个字符串,然后输出。
  14. python利用中误差检验影像精度
  15. 【技术邻】搞热仿真离不开热电偶
  16. 信息安全与技术——(十一)恶意代码检测与防范技术
  17. 【RocketMQ】消息重试、重试次数设置、死信队列
  18. 【2021-03-17】JS逆向之某实时票房榜数据解密
  19. 数字杭电之抢课系统分析
  20. .Net内部缓存System.Web.Caching.Cache 和Redis缓存缓存工厂切换

热门文章

  1. php 红包雨,vue移动端实现红包雨效果
  2. 支持access的php框架,NginX友好的PHP框架
  3. chmod 777命令_Linux shell命令总结
  4. oracle into 循环,oracle游标中使用select into查询结果为NULL导致异常提前退出循环——菜鸟解决办法(^_^)...
  5. 人脸对齐(二十)--PRN
  6. 系统学习深度学习(二十七)--CTC
  7. python虚拟环境搭建mac_在MAC上安装Python虚拟环境
  8. jira状态评审未通过后 不能修改_去年职称申报未通过,今年再报名的,这些变化需要注意了...
  9. PAT (Basic Level) Practice1017 A除以B
  10. 时间戳和字符串互相转换