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[];
int flag,t;
while(gets(data))
{
flag=;//假设是对的
for(int i=;i<strlen(data);i++)//第一步,先找是否有特殊符号
{
if((data[i]<''||data[i]>'')&&data[i]!='.')
flag=;
}
//第二步,看是否有且只有三个'.'
int cnt=;
for(int i=;i<strlen(data);i++)
{
if(data[i]=='.')
cnt++;
}
if(cnt!=)
flag=;
//第三步,看两个点之间的长度是否是1~3位;
int num=,l,k=;;
char p[];
l=strlen(data);
data[l]='.';
data[l+]='\0';
t=;
int wei=;
for(int i=;i<=strlen(data);i++)
{
if(data[i]!='.')
wei++;
else if(data[i]=='.'&&data[i-]!='.')
{
if(wei<||wei>)
flag=;
wei=;
}
}
//第四步,看数字是不是1~255
for(int i=;i<=strlen(data);i++)
{
if(data[i]!='.')
{
p[k]=data[i];
k++;
}
else if(data[i-]!='.'&&i>)
{
p[k]='\0';
num=atoi(p);
if(num>)//if(num<1||num>255)此处是此题神坑位置。。。因为000.3.3.3是正确的。。
flag=;
k=;
t++;
}
}
if(t!=)
flag=;
if(flag==)
cout<<"NO"<<endl;
if(flag==)
cout<<"YES"<<endl; }
return ;
}

HDU2206:IP的计算的更多相关文章

  1. HDU2206 IP的计算 【经典题】

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

  2. IP的计算

    IP的计算 时间限制: 1 Sec  内存限制: 32 MB 位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如192 ...

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

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

  4. 用Python帮你实现IP子网计算

    目录 0. 前言 1. ipaddress模块介绍 1.1 IP主机地址 1.2 定义网络 1.3 主机接口 1.4 检查address/network/interface对象 1.4.1 检查IP版 ...

  5. 阿里云专有网络配置以及交换机配置+ip、子网掩码、ip网段计算原理讲解

    在阿里云上购买ECS或者其他服务,如redis.polardb时,需要配置专有网络,阿里的文档写的总体上还是比较抽象的,没有一定的网络基础,会一脸懵. 所以这里我来进行专有网络和交换机的配置,以及ip ...

  6. ip子网掩码计算及子网划分

    为什么要懂 子网掩码计算,及子网划分属于网络基础知识.一般在几个地方会用到: 公司避免产生网络风暴而划分子网,帮助路由器判断对应主机是否在同一个网段中 服务器相互隔离而划分子网,一般机房管理人员规划: ...

  7. HDOJ 2206 IP的计算(正则表达式的应用)

    Problem Description 在网络课程上,我学到了很多有关IP的知识.IP全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,现在IPV4下用一个32位无符号整数来表示,一般用点分方 ...

  8. HDU 2206 IP的计算(字符串处理)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2206 Problem Description 在网络课程上,我学到了非常多有关IP的知识. IP全称叫 ...

  9. 【HDOJ】2206 IP的计算

    题目很简单,情况有很多种. #include <stdio.h> #include <string.h> ]; int isIPaddr(char buf[]) { int i ...

随机推荐

  1. SSH整合例子

    三大框架: Struts框架 1. params拦截器: 请求数据封装 2. 类型转换/数据处理 3. struts配置 4. 文件上传/下载/国际化处理 5. 数据效验/拦截器 6. Ognl表达式 ...

  2. 转: Executor类

    Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,Completion ...

  3. java基础之操作符

    一:赋值 1.对基本数据类型的赋值,int a=b:   //把b的值复制给a,如果修改了a的值,b 的值不会受到影响. 2.对引用类型的赋值, public class Text { public ...

  4. ARM驱动调试方法、思路总结、笔记

    驱动程序的调试一. 打印: prink, 自制proc文件UBOOT传入console=ttySAC0 console=tty11. 内核处理UBOOT传入的参数console_setup add_p ...

  5. ubuntu 搭建python2.x 抓取环境

    1.apt-get install python-bs4 bs4只有py2的代码,安装在py3下会很麻烦 bs4支持HTML parser,也可以支持第三方的分析器 2.apt-get install ...

  6. jQuery获取当前对象标签名称

    获取当前对象标签名称 $(".classname")[0].tagName;

  7. JQuery select option append

    三种方法: $('select').append($('<option>', {value:1, text:'One'})); $('select').append('<option ...

  8. 转:MongoDB介绍及下载与安装

    非原创,我也是转载(Here)过来备份一下.关于MongoDB园子里有个系列讲的不错的,点击此处跳转 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系 ...

  9. Delphi用ADOquery主从表例子(转总结)

    http://blog.csdn.net/kandy_zheng/article/details/1639184 在sql server 的northwide 中建立主表 create table s ...

  10. [ An Ac a Day ^_^ ] CodeForces 426C Sereja and Swaps 优先队列

    题意: 给你一个有n个数的序列 取一个区间 这个区间内的数可以与区间外的值交换k次 问这样的区间最大值是多少 思路: 看数据是200 时间复杂度O(n*n) 应该可以暴力 顺便学习一下优先队列 枚举区 ...