Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u

Submit

Status

Practice

HDU 2206

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>
using namespace std; char str[110];
int pos[4];
int main(){
//freopen("in.txt","r",stdin);
while(gets(str) != NULL){
int cnt = 0,flag = 1;
int len = strlen(str);
for(int i = 0; i < len; i++){
if(str[i] == '.') pos[cnt++] = i;
else if(str[i] < '0' || str[i] > '9') flag = 0;
}
if(pos[0] >= 4 || pos[0] == 0 || cnt != 3) flag = 0;
for(int i = 1; i <= 2; i++){
int temp = pos[i]-pos[i-1];
if(temp > 4 || temp == 0 || temp ==1) { flag = 0; break;}
}
int c = 0;
for(int i = 0; i < len; i++)
if(str[i]!= '.') c = c*10+str[i]-'0';
else if(c > 255) flag = 0;
else c = 0;
if(c > 255) flag = 0;
if(flag) puts("YES");
else puts("NO");
}
return 0;
}

判断给定的字符串是不是符合IP地址的描述方式。注意是给定的字符串!

一个合法的IP地址

1.有且仅有3个’.’

2.第一个点出现的位置是字符串下标的1-3,后面相邻两个’.’的下标差为2-3

3.每一个数字的范围是0-255

HDU 2206的更多相关文章

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

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

  2. hdu 2206 IP的计算(最全的注意事项)

    注意: 1.非法字符(包括空格) 如下都是错的 A.145.124.4 192.168.18 123(用scanf输入的话,则接收的是:192.168.18) 2.'.'有且仅有3个,且不能连续出现, ...

  3. HDU——PKU题目分类

    HDU 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 ...

  4. [转] HDU 题目分类

    转载来自:http://www.cppblog.com/acronix/archive/2010/09/24/127536.aspx 分类一: 基础题:1000.1001.1004.1005.1008 ...

  5. HDU ACM 题目分类

    模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 104 ...

  6. HDU 3594.Cactus 仙人掌图

    Cactus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  7. 转载:hdu 题目分类 (侵删)

    转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...

  8. poj和hdu部分基础算法分类及难度排序

    最近想从头开始刷点基础些的题,正好有个网站有关于各大oj的题目分类(http://www.pythontip.com/acm/problemCategory),所以写了点脚本把hdu和poj的一些题目 ...

  9. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

随机推荐

  1. 服务消费和负载(Ribbon)

    使用RestTemplate调用服务 在上一篇教程中,我们是这样调用服务的,先通过 LoadBalancerClient 选取出对应的服务,然后使用 RestTemplate 进行远程调用. Load ...

  2. 批量设置样式json版

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...

  3. pyhton 学习 函数式编程

    函数是python内建支持的一种封装,我们通过把打断的代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计,函数就是面向过程的程序设计的基本单元 ...

  4. bzoj3879

    题解: 后缀数组 然后把读入的内容去重,按照rank排序 然后用单调栈处理一下 代码: #include<bits/stdc++.h> using namespace std; typed ...

  5. RabbitMQ 消息应答机制(message acknowledgments)

    消息应答机制是一个很重要的功能,它能保证消息队列中的某个消息是否被成功处理.如果RabbitMQ server收到Consumer端发来的应答信号,就会将Consumer刚才处理的消息删除,并发送下一 ...

  6. 通过eclipse创建项目

    基于eclipse的Java文件:项目(project)<类(class)<方法(method),即方法method必须基于class, class必须基于project. 项目是程序的源 ...

  7. 愛拼才會贏--IPA--闽南语

    闽南语经典曲目.

  8. 基于Scrapy-Redis和docker技术在单机上构建分布式爬虫

    准备工作: 安装docker https://www.docker.com/docker-ubuntu 选择ce版本 通过docker pull 下载基础镜像,ubuntu16.04, redis, ...

  9. pytest启动浏览器,失败用例截图

    1.conftest.py # coding:utf- from selenium import webdriver import pytest driver = None @pytest.mark. ...

  10. python第一天 计算机基础

    计算机硬件组成 控制器: 运算器 存储器I/O设备 与运行程序有关的三大核心硬件 cpu,内存,硬盘 运行软件时,硬件的运作流程 1.软件最先存放于硬盘当中,软件的代码运行时会由硬盘读入内存 2.cp ...