IP判断(ssscanf()函数)
问题 1116: IP判断
时间限制: 1Sec 内存限制: 128MB 提交: 1804 解决: 698
题目描述
在基于Internet的程序中,我们常常需要判断一个IP字符串的合法性。
合法的IP是这样的形式:
A.B.C.D
其中A、B、C、D均为位于[0, 255]中的整数。为了简单起见,我们规定这四个整
数中不允许有前导零存在,如001这种情况。
现在,请你来完成这个判断程序吧_
输入
输入由多行组成,每行是一个字符串,输入由“End of file”结束。
字符串长度最大为30,且不含空格和不可见字符
输出 对于每一个输入,单独输出一行 如果该字符串是合法的IP,输出Y,否则,输出N
样例输入
1.2.3.4
a.b.c.d
267.43.64.12
12.34.56.bb
210.43.64.129
-123.4.5.6
样例输出
Y
N
N
N
Y
N
提示
无
这个题还真得用巧办法才好做,使用sscanf()很大程度降低了复杂性!(虽然其它算法也不太难),事实上练题的朋友多了解一些很有用的函数总是可以派得上用场的~
简单说说sscanf()
函数吧,就是和scanf()很相似,只是与之相区别的是,scanf()
是从屏幕上获取值,而它是从指定的字符串中获取值;
Int sscanf( string str, string fmt, mixed var1, mixed var2 ... );
int scanf( const char *format [,argument]... );
没有对比就没有伤害,看代码体会下。
巧用sscanf():
#include<cstdio>
using namespace std;
#define p(n) n>=0&&n<=255
int main(){int a,b,c,d;char s[20];int k;while(~scanf("%s",s)){if(sscanf(s,"%d.%d.%d.%d",&a,&b,&c,&d)==4)if(p(a)&&p(b)&&p(c)&&p(d)) printf("Y\n");else printf("N\n");else printf("N\n");}return 0;
}
用比较笨的各种排查:
#include<iostream>
#include<string.h>
using namespace std;
#define Y 1
#define N 0
int main(){char a[20];while(cin>>a){int i,len=strlen(a),judge=Y;int pointNumber=0,num=0;for(i=0;i<len;i++) //判断是否有非法字符 if((a[i]<'0'||a[i]>'9')&&a[i]!='.') {judge=N;break;}for(i=0;i<len;i++){if(a[i]=='0'){ //判断0是否非法 if(i==0&&a[i+1]!='.'){judge=N; break;}if(i!=0&&(a[i+1]!='.'&&i!=len-1)){judge=N; break;}} if(a[i]>='0'&&a[i]<='9') num=num*10+a[i]-48; //计算整数 if(num>255&&(a[i]=='.'||i==len-1)){judge=N; break;} //判断整数是否非法 if(a[i]=='.'){ //判断句点是否非法 pointNumber+=1;num=0;if((a[i+1]<'0'&&a[i+1]>'9')||a[i+1]=='.'){judge=N; break;}} }if(judge==Y&&pointNumber==3) cout<<"Y"<<endl;else cout<<"N"<<endl;}return 0;
}
IP判断(ssscanf()函数)相关推荐
- PHP根据IP判断地区
<?php header('Content-Type:text/html;Charset=utf-8'); //以下为获取ip函数function GetIp(){ $realip = ''; ...
- 1.socket编程:socket编程,网络字节序,函数介绍,IP地址转换函数,sockaddr数据结构,网络套接字函数,socket相关函数,TCP server和client
1 Socket编程 socket这个词可以表示很多概念: 在TCP/IP协议中,"IP地址+TCP或UDP端口号"唯一标识网络通讯中的一个进程,"IP 地址+端 ...
- php定位和天气,基于thinkphp实现依据用户ip判断地理位置并提供对应天气信息的应用...
基于thinkphp实现根据用户ip判断地理位置并提供对应天气信息的应用 我们都知道,在很多的网站都提供了给用户提供天气预报的功能,有时会发现,用户即使不输入任何和自己有关的地理位置信息,同样的网站也 ...
- 【Linux网络编程学习】预备知识(网络字节序、IP地址转换函数、sockaddr数据结构)
此为牛客Linux C++课程和黑马Linux系统编程笔记. 1. 网络字节序 我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分. 磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小 ...
- linux的基础知识——网络字节序转化,ip地址转换函数,sockaddr数据结构
1.网络字节序 TCP/IP协议规定,网络数据流采用大端字节序,即低地址高字节.为了使网络程序具有可移植性,使得同样的C代码在大端和小端计算机上编译后都能正常运行,可以调用以下库函数做网络字节序和主机 ...
- php定位和天气,基于thinkphp实现根据用户ip判断地理位置并提供对应天气信息的应用_PHP教程...
基于thinkphp实现根据用户ip判断地理位置并提供对应天气信息的应用 我们都知道,在很多的网站都提供了给用户提供天气预报的功能,有时会发现,用户即使不输入任何和自己有关的地理位置信息,同样的网站也 ...
- matlab 判断整除函数_判断素数函数
描述 写一个函数isPrime(n)用于判断一个数字n是不是素数,用户输入一个正整数,在一行内输出不大于该数的所有素数,各数后面用一个空格分隔. 输入格式 输入一个正整数 输出格式 不大于该数的所有素 ...
- python 通过ip获取城市_Python根据用户IP判断所属城市 !
事情源于7月以来,SEO销售额下降比较明显,老板让我想想办法提升SEO销售额. 而销量=流量×转化率×客单价,客单价我这边没法控制,只能从流量和转化率两个方向入手了.但对SEO来讲,短时间大幅度提升S ...
- 如何1秒内快速判断一个函数的凹凸性?还看不懂我给你赔钱
我今天的文章,不贴出具体的函数图像,就来给大家提供一种快速判断图像凹凸性的思路. 当每个同学在学习数据结构与算法的时候,始终有一个幽灵在伴随着每个同学,就是时间复杂度,据说是高纳德发明的东西,这个东西 ...
最新文章
- 走进欧洲、澳洲和加拿大21000个零售网点,比特币现金(BCH)有何潜力?
- Python 面向对象 编程(一)
- sq服务启动后又停止_SQL SERVER SQL Agent 服务启动后又停止的解决办法
- vi(vim)编辑器 学习笔记
- QCostomPlot 示例注解 1
- DEL: Chrome Browser Shortcuts
- java 转换成maven项目_java – 将现有项目转换为maven项目
- [莓技巧]黑莓7290输入短信时文字变为“?”的解决办法
- VUE 组件 有数据不渲染 v-for
- SAP中多层扩展有效地bom
- xenu工具如何扫描网站
- 面积曲线AUC(area under curve)
- cadence常用软件模块介绍
- 基础程序教学教程【语言:python3.4】
- plsql不读操作系统环境变量_64位Oracle客户端上PLSQL无法识别ORACLE_HOME解决方案
- 如何让大学的青春少些遗憾!
- Mantis基本功能介绍
- 仙侠游戏改编电视剧为什么很火?
- linux 键盘灯控制软件,LINUX下如何控制小键盘灯的亮和灭
- 2019 ICPC 南昌网络赛 H. The Nth Item
热门文章
- html5学生dw网页设计大作业,hbuilder仿茅台集团网页设计成品模板,图片轮播网页设计模板
- 如何使用 Podman 签署和分发容器镜像
- iOS5完美越狱箭在弦上 Android更赚钱
- Word 2013版本管理
- ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。
- java设备imei号_java 怎么计算IMEI号码正确性
- 网站安全公司生存发展趋势分析
- android 电池检测软件,电池寿命检测软件下载-电池寿命检测 安卓版v2.7.0-PC6安卓网...
- 2022年度总结——2022我在CSDN的那些事暨2023我的目标展望:Pursue freedom Realize self-worth
- Springboot项目搭建有ftpClientPool的Ftp工具类