问题 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()函数)相关推荐

  1. PHP根据IP判断地区

    <?php header('Content-Type:text/html;Charset=utf-8'); //以下为获取ip函数function GetIp(){ $realip = ''; ...

  2. 1.socket编程:socket编程,网络字节序,函数介绍,IP地址转换函数,sockaddr数据结构,网络套接字函数,socket相关函数,TCP server和client

     1  Socket编程 socket这个词可以表示很多概念: 在TCP/IP协议中,"IP地址+TCP或UDP端口号"唯一标识网络通讯中的一个进程,"IP 地址+端 ...

  3. php定位和天气,基于thinkphp实现依据用户ip判断地理位置并提供对应天气信息的应用...

    基于thinkphp实现根据用户ip判断地理位置并提供对应天气信息的应用 我们都知道,在很多的网站都提供了给用户提供天气预报的功能,有时会发现,用户即使不输入任何和自己有关的地理位置信息,同样的网站也 ...

  4. 【Linux网络编程学习】预备知识(网络字节序、IP地址转换函数、sockaddr数据结构)

    此为牛客Linux C++课程和黑马Linux系统编程笔记. 1. 网络字节序 我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分. 磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小 ...

  5. linux的基础知识——网络字节序转化,ip地址转换函数,sockaddr数据结构

    1.网络字节序 TCP/IP协议规定,网络数据流采用大端字节序,即低地址高字节.为了使网络程序具有可移植性,使得同样的C代码在大端和小端计算机上编译后都能正常运行,可以调用以下库函数做网络字节序和主机 ...

  6. php定位和天气,基于thinkphp实现根据用户ip判断地理位置并提供对应天气信息的应用_PHP教程...

    基于thinkphp实现根据用户ip判断地理位置并提供对应天气信息的应用 我们都知道,在很多的网站都提供了给用户提供天气预报的功能,有时会发现,用户即使不输入任何和自己有关的地理位置信息,同样的网站也 ...

  7. matlab 判断整除函数_判断素数函数

    描述 写一个函数isPrime(n)用于判断一个数字n是不是素数,用户输入一个正整数,在一行内输出不大于该数的所有素数,各数后面用一个空格分隔. 输入格式 输入一个正整数 输出格式 不大于该数的所有素 ...

  8. python 通过ip获取城市_Python根据用户IP判断所属城市 !

    事情源于7月以来,SEO销售额下降比较明显,老板让我想想办法提升SEO销售额. 而销量=流量×转化率×客单价,客单价我这边没法控制,只能从流量和转化率两个方向入手了.但对SEO来讲,短时间大幅度提升S ...

  9. 如何1秒内快速判断一个函数的凹凸性?还看不懂我给你赔钱

    我今天的文章,不贴出具体的函数图像,就来给大家提供一种快速判断图像凹凸性的思路. 当每个同学在学习数据结构与算法的时候,始终有一个幽灵在伴随着每个同学,就是时间复杂度,据说是高纳德发明的东西,这个东西 ...

最新文章

  1. 走进欧洲、澳洲和加拿大21000个零售网点,比特币现金(BCH)有何潜力?
  2. Python 面向对象 编程(一)
  3. sq服务启动后又停止_SQL SERVER SQL Agent  服务启动后又停止的解决办法
  4. vi(vim)编辑器 学习笔记
  5. QCostomPlot 示例注解 1
  6. DEL: Chrome Browser Shortcuts
  7. java 转换成maven项目_java – 将现有项目转换为maven项目
  8. [莓技巧]黑莓7290输入短信时文字变为“?”的解决办法
  9. VUE 组件 有数据不渲染 v-for
  10. SAP中多层扩展有效地bom
  11. xenu工具如何扫描网站
  12. 面积曲线AUC(area under curve)
  13. cadence常用软件模块介绍
  14. 基础程序教学教程【语言:python3.4】
  15. plsql不读操作系统环境变量_64位Oracle客户端上PLSQL无法识别ORACLE_HOME解决方案
  16. 如何让大学的青春少些遗憾!
  17. Mantis基本功能介绍
  18. 仙侠游戏改编电视剧为什么很火?
  19. linux 键盘灯控制软件,LINUX下如何控制小键盘灯的亮和灭
  20. 2019 ICPC 南昌网络赛 H. The Nth Item

热门文章

  1. html5学生dw网页设计大作业,hbuilder仿茅台集团网页设计成品模板,图片轮播网页设计模板
  2. 如何使用 Podman 签署和分发容器镜像
  3. iOS5完美越狱箭在弦上 Android更赚钱
  4. Word 2013版本管理
  5. ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。
  6. java设备imei号_java 怎么计算IMEI号码正确性
  7. 网站安全公司生存发展趋势分析
  8. android 电池检测软件,电池寿命检测软件下载-电池寿命检测 安卓版v2.7.0-PC6安卓网...
  9. 2022年度总结——2022我在CSDN的那些事暨2023我的目标展望:Pursue freedom Realize self-worth
  10. Springboot项目搭建有ftpClientPool的Ftp工具类