当前位置: 首页 > 编程日记 > 正文

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

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2206


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


IP地址应该满足例如以下条件:
1.  '.'有且仅仅能有3个
2.  4个放数字的位置,长度应该在1~3之间(含边界)
3.  每一个数字应该:1~255(含边界)

4.  不能有特殊字符


比較坑的地方就是。输入居然会有空格!

用scanf就不行了。


代码例如以下:

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
char s[117];
int flag;
int len;
int place[17];
int k;
void judge1(char st[])//推断是否每一个数字段的个数在1——3之间。

{ if(len > 15 || len < 7) flag = 1; } void judge2(char st[])//推断是否有且仅有三个'.'。 { int cont = 0; int i; for(i = 0; i < len; i++) { if(st[i] == '.') { cont++; place[k] = i; k++; } } if(cont != 3) flag = 1; place[k] = i; k++; } void judge3(char st[])//推断是否有特殊字符。 { for(int i = 0; i < len; i++) { if(!(st[i]=='.' || (st[i]>='0'&&st[i]<='9'))) { flag = 1; break; } } } void judge4(char st[])//推断是否每一个数字段的大小在1——255之间(含边界)。 { for(int i = 1; i < k; i++) { int tt = 0; for(int j = place[i-1]+1; j < place[i]; j++) { tt = tt*10+(st[j]-'0'); } if(tt > 255) { flag=1; break; } } } int main() { while(gets(s)) { //换为scanf直接WA memset(place,0,sizeof(place)); place[0] = -1; flag = 0; k = 1; len = strlen(s); judge1(s); if(flag) { printf("NO\n"); continue; } judge2(s); if(flag) { printf("NO\n"); continue; } judge3(s); if(flag) { printf("NO\n"); continue; } judge4(s); if(flag) { printf("NO\n"); continue; } printf("YES\n"); } return 0; }




转载于:https://www.cnblogs.com/clnchanpin/p/6910350.html

相关文章:

有规律格式化文本文件插入数据库

现有以下文本文件: *理光(深圳)工业发展有限公司(D15)(位于福田区)1.厨师1名;男;30岁以下;高中以上学历;中式烹调师中级以上&#xff0c;需备齐身份证/毕业证/流动人口婚育证明原件及复印件1份.经公司体检不合格者将不予录用&#xff0c;不合格者体检费自理.福利及待遇:工作时…

java使用uploadify上传文件

一、简介Uploadify是JQuery的一个上传插件&#xff0c;实现的效果非常不错&#xff0c;带进度显示&#xff1b;可以上传多个文件&#xff1b;详细的使用方法网上有很多&#xff0c;建议到官网参考&#xff0c;这里仅仅展示其使用的效果&#xff1b;官网&#xff1a;www.uploadi…

微软亚洲研究院成立OpenNetLab,探索以“数据为中心”AI网络研究新范式!

2020年12月18日&#xff0c;微软亚洲研究院宣布联合清华大学、北京大学、南京大学、兰州大学、新加坡国立大学、首尔国立大学等多所亚洲地区高校&#xff0c;成立OpenNetLab开放网络平台联盟。 OpenNetLab官网地址&#xff1a;https://opennetlab.org/ 通过为研究人员提供通用的…

圆角文本框的制作

把border&#xff1a;0px;outline:none;就可以清除边框。然后在外面放一个圆角div&#xff0c;文本框在div内居中的话能够&#xff0c;设置行高和text-align:center。或者也能够在背景图上放文本框。

微软收购 GitHub 两年后,大咖共论开源新生态

头图 | CSDN 下载自视觉中国被微软收购两年的GitHub&#xff0c;现在怎么样了&#xff1f;据《 2020 年度 GitHub Octoverse 报告》显示&#xff0c;GitHub 上开发者数量达到 5600 万&#xff0c;新增 6000 万个存储库以及 19 亿个 contribution。GitHub 预计到 2025 年&#x…

网页中如何获取客户端系统已安装的所有字体?

如何获取系统字体&#xff1f;1.首先在需要获取系统字体的网页<body>后加入以下代码&#xff1a;<DIV style"LEFT: 0px; POSITION: absolute; TOP: 0px"><OBJECT ID"dlgHelper" CLASSID"clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b&q…

Web开发常见的软件架构

Web开发常见的软件架构 一、看需求分析&#xff0c;看产品PRD&#xff1a;Product Requirement Document 二、根据PRD和产品原型建数据库表,注意三范式要求,用工具到处数据库关系图&#xff0c;并快速地理清数据库思路 三、搭建项目架构&#xff0c;常用三层&#xff0c;自动…

thinkphp整合系列之gulp实现前端自动化

这又是一个一次整合终身受益&#xff1b;不止是终身&#xff1b;换个项目同样可以很方便复用&#xff1b;不信你看另一个项目&#xff1a; thinkphp整合系列之gulp实现前端自动化 虽然我等叫php程序猿&#xff1b;但是不可避免的是要跟html打交道的&#xff1b;而且php这么容易…

网上几种常见校验码图片分析

前几天受刺激了&#xff0c;准备把CSDN的校验码图片修改。就上网找了一些参考示例。和分析了一些校验码的功能。不敢独享&#xff0c;整理到一起&#xff0c;跟大家分享。 至于CSDN新的校验码写法&#xff0c;不是这里面的任何一种。也不是网上可以找到的。这个不好公开&#…

语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。...

语言都是相通的&#xff0c;学好一门语言&#xff0c;再学第二门语言就很简单&#xff0c;记录一下我复习c语言的过程。为了将本人的python培训提高一个层次&#xff0c;本人最近买了很多算法的书.这个书上的代码基本都是c语言实现的&#xff0c;c语言很久没有用了&#xff0c;…

百度飞桨全新升级:重磅推出PaddleHelix平台、开源框架V2.0RC,硬件生态路线图全公开...

12月20日&#xff0c;WAVE SUMMIT2020深度学习开发者峰会在北京举办。本届峰会&#xff0c;百度飞桨带来八大全新发布与升级&#xff0c;有支持前沿技术探索和应用的生物计算平台PaddleHelix螺旋桨&#xff0c;开发更加便捷的飞桨开源框架2.0 RC版&#xff0c;端云协同的AI集成…

Java解压zip文件(文本)压缩包

2019独角兽企业重金招聘Python工程师标准>>> 说明&#xff1a;由于我们的日志收集到指定服务器上&#xff0c;会按天压缩成一个zip格式的压缩包&#xff0c;但是有时候需要对这些日志进行处理&#xff0c;人工解压在处理&#xff0c;显示对于大量的日志处理是不行的…

Asp.Net 动态生成验证码

我们在设计用户登录模块时&#xff0c;经常会用到验证码&#xff0c;可以有效地防止黑客软件的恶意破解&#xff0c;现公开我常用的验证码的源代码&#xff0c;生成效果如图&#xff1a;。使用方法&#xff1a;1、在Web项目中添加一个类&#xff0c;如“CreateImage.cs”&#…

Hyper-v 3.0虚拟化平台群集共享磁盘无法failover的故障

碰到一个hyper-v 3.0虚拟化平台和HP存储的兼容性问题&#xff0c;放出来和大家分享一下。平台&#xff1a;windows server 2012 RTMhyper-v 3.0故障现象&#xff1a;生产虚拟平台宿主机意外重启&#xff0c;且重启后一块存储磁盘变成脱机状态&#xff0c;进一步测试发现宿主机上…

2020年中国AI算力报告发布:超大算法模型挑战之下,公共AI算力基建是关键

随着人工智能算法突飞猛进的发展&#xff0c;越来越多的模型训练需要巨量的算力支撑才能快速有效地实施。目前&#xff0c;如AlphaFold、GPT-3等模型已经逼近人工智能的算力极限&#xff0c;GPT-3的模型尺寸增大到了1750亿&#xff0c;数据量也达到了惊人的45TB。一方面&#x…

Spring中使用Log4j记录日志

以下内容引用自http://wiki.jikexueyuan.com/project/spring/logging-with-log4j.html&#xff1a; 例子&#xff1a; pom.xml&#xff1a; <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"x…

象 DEV-Club 那样的彩色校验码

要读懂这些代码主要是要了解ASP中操作二进制数据的对象ADODB.Stream&#xff01;本程序主要用的就是Adodb.Stream&#xff0c;如果你有这个基础&#xff0c;就可以进一步添加更多的功能如加入杂点&#xff0c;渐变底色&#xff0c;数字行列错位&#xff0c;笔画短点&#xff0c…

北斗时钟在国内各行业的应用前景

北斗时钟在国内各行业的应用前景 北斗时钟&#xff08;GPS标准同步钟,GPS对时设备,北斗时间服务器&#xff09;以北斗卫星信号作为时间源&#xff0c;同时可选GPS、IRIG-B码、OCX0、铷原子钟、CDMA信号等时钟源&#xff0c;对时精度达20nS。 上海锐呈电气有限公司产品采用表…

寻找长沙“科技之星”,CSDN星城大巡礼

2020年&#xff0c;长沙市委主要领导发出“软件产业再出发”的号召&#xff0c;并颁布了软件三年行动计划。今年5月&#xff0c;CSDN作为专业的IT社区&#xff0c;与长沙高新区签约&#xff0c;将全国总部落户长沙&#xff0c;这一战略决策&#xff0c;让CSDN与长沙的联结进一步…

DevDays2012 开发者日中文版资料下载

DevDays2012开发者日中文版资料已经上传到ADN网站&#xff0c;如果你是ADN会员&#xff0c;可以从下面地址下载&#xff1a;http://adn.autodesk.com/adn/servlet/item?siteID4814862&id21105549 作者&#xff1a;峻祁连邮箱&#xff1a;junqilian163.com 出处&#xff1a…

对人脑而言,阅读计算机代码和阅读语言有何不同?

作者 | Anne Trafton 翻译 | 火火酱,责编 | 晋兆雨 出品 | AI科技大本营 头图 | 付费下载于视觉中国 神经科学家们发现&#xff0c;人类在解读代码时会激活一个通用的大脑区域网络&#xff0c;但不会激活语言处理中心。 就某些方面而言&#xff0c;学习计算机编程和学习一门新语…

如何在asp.net中动态生成验证码

现在越来越多的网站喜欢搞个验证码出来&#xff0c;而且各个语言基本上都能做到&#xff0c;今天我来一个C#写的&#xff01; using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web…

http_build_query用法

2019独角兽企业重金招聘Python工程师标准>>> http_build_query (PHP 5) http_build_query -- 生成 url-encoded 之后的请求字符串 描述string http_build_query ( array formdata [, string numeric_prefix] ) 使用给出的关联&#xff08;或下标&#xff09;数组生…

《JAVA与模式》之简单工厂模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述简单工厂模式的&#xff1a;简单工厂模式是类的创建模式&#xff0c;又叫做静态工厂方法&#xff08;Static Factory Method&#xff09;模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。 那么简单工厂模式是…

ASP.NET MVC上传文件----uploadify的使用

课程设计需要实现上传文件模块&#xff0c;本来ASP.NET是有内置的控件&#xff0c;但是ASP.NET MVC没有&#xff0c;所以就有两种方法:自定义和采用第三方插件。由于时间的关系&#xff0c;故采用第三方插件:uploadify。 uploadify的使用必须下载相应的文件&#xff0c;下载地址…

QQ验证码识别源代码(C#/NET1.1)

using system; namespace qq { /// <summary> /// yzm 的摘要说明。 /// </summary> public class yzm { public yzm(public system.drawing.bitmap pic) { this.bp pic; } /// <summary> /// 将一个int值存入到4个字节的字节数组(从高地址开始…

身限辞退风波,Google AI 掌门人 Jeff Dean 不误折桂 IEEE 冯诺依曼奖

【CSDN 编者按】在 AI 圈&#xff0c;除了平常说的“人工智障”&#xff0c;“机器学习不学习”之类的&#xff0c;就数 Jeff Dean 的段子流传最多最广了。像什么”编译器从来不给Jeff编译警告&#xff0c;而是Jeff警告编译器“、“所有的指针都是指向 Jeff Dean 的”、“Jeff …

Javascript及Jquery获取元素节点以及添加和删除操作

用了javascript和jquery很久&#xff0c;把所有元素节点的操作总结了下&#xff0c;放在博客上作为记录。 Javascript获取元素的主要方式有三种 1、document.getElementById(main)&#xff1a;表示从document中查找一个id是main的dom节点。&#xff08;这个跟$(#main)的作用是一…

PHP版本发展历史

PHP版本发展历史 PHP1 PHP最初是作为一个快速、实用的工具包出现的。1994年&#xff0c;为了在自己的网站上增加一个小巧而实用的访客追踪系统&#xff0c;Rasmus Lerdorf编写了PHP的雏形程序。这是一个用Perl封装的简单工具。由于使用效果并不理想&#xff0c;Rasmus又用C语…

仅剩一周!!CSDN年终大放血!人人有份的大奖你确定不来?

我们的测评大赛自开展一周以来&#xff0c;已经收到了9位同学的优秀作品&#xff0c;我们的礼品数量远超参加的同学数量&#xff0c;所以现在参与的同学人人有大奖&#xff01;这获奖的概率也太高了吧&#xff01;&#xff01;&#xff01;还不快参与进来&#xff01;&#xff…