判断IP是否正确
2018-01-08 09:59
155 查看
#include<iostream>
#include<string>
using namespace std;
bool judge(string a) //判断函数
{
int n=a.size(),count=0,b[3]={0},j=0;
for(int i=0;i<n;i++) //有非法字符
if(!((a[i]>='0'&&a[i]<='9')||a[i]=='.'))
return false;
for(int i=0;i<n;i++)
if(a[i]=='.')
count++;
if(count!=3)
return false; //'.'的个数必需为3
if(n>15)
return false; //字符最长为15
for(int i=0;i<n;i++)
{
if(a[i]=='.') //'.'只能是夹在数字中间
{
if(i==0) //在开头要排除
return false;
if(i==n-1) //在结尾要排除
return false;
if(a[i-1]=='.'||a[i+1]=='.') //有相连的要排除,把后面的那个给掉了,结果导致出错
return false;
}
}
for(int i=0;i<n;i++)
{
if(a[i]!='.')
b[j]=b[j]*10+a[i]-'0'; //上面情况都无法排除后,将字符转化为数字
else
j++;
}
for(int i=0;i<4;i++) //若数字超过255,则要排除
if(b[i]>255)
return false;
return true;
}
int main()
{
string a;
cin>>a;
if(judge(a))
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
return 0;
}
【问题描述】
在网络课程上,我学到了很多有关IP的知识。IP全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如192.168.100.16,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32位数字)。
但是粗心的我,常常将IP地址写错,现在需要你用程序来判断。
【输入形式】
每个case一行,不超过100个字符。
【输出形式】
对于每个case,判断输入的IP是否正确,如果正确输出YES,否则NO。
【样例输入】
【样例输出】
#include<string>
using namespace std;
bool judge(string a) //判断函数
{
int n=a.size(),count=0,b[3]={0},j=0;
for(int i=0;i<n;i++) //有非法字符
if(!((a[i]>='0'&&a[i]<='9')||a[i]=='.'))
return false;
for(int i=0;i<n;i++)
if(a[i]=='.')
count++;
if(count!=3)
return false; //'.'的个数必需为3
if(n>15)
return false; //字符最长为15
for(int i=0;i<n;i++)
{
if(a[i]=='.') //'.'只能是夹在数字中间
{
if(i==0) //在开头要排除
return false;
if(i==n-1) //在结尾要排除
return false;
if(a[i-1]=='.'||a[i+1]=='.') //有相连的要排除,把后面的那个给掉了,结果导致出错
return false;
}
}
for(int i=0;i<n;i++)
{
if(a[i]!='.')
b[j]=b[j]*10+a[i]-'0'; //上面情况都无法排除后,将字符转化为数字
else
j++;
}
for(int i=0;i<4;i++) //若数字超过255,则要排除
if(b[i]>255)
return false;
return true;
}
int main()
{
string a;
cin>>a;
if(judge(a))
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
return 0;
}
【问题描述】
在网络课程上,我学到了很多有关IP的知识。IP全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如192.168.100.16,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32位数字)。
但是粗心的我,常常将IP地址写错,现在需要你用程序来判断。
【输入形式】
每个case一行,不超过100个字符。
【输出形式】
对于每个case,判断输入的IP是否正确,如果正确输出YES,否则NO。
【样例输入】
192.168.100.16
【样例输出】
YES
相关文章推荐
- C# 判断IP格式是否正确,字符串类型IPV4地址
- 判断ip 是否正确 python
- js判断输入的IP是否合法,IP范围是否正确
- 如何判断EditText的内容是否是正确IP格式
- 判断输入的IP是否正确
- 判断输入的IP格式是否正确
- 判断IP是否正确的shell 脚本
- 发送短信验证码没有判断图形验证码是否正确,被攻击,临时用nginx限制ip访问
- 判断IP地址是否输入正确,并获取IP的字段值
- shell脚本--判断输入的ip是否正确
- 写一个脚本checkipadd.sh,判断所输入的参数是否为正确的IP地址,如 果是就输出"This is ip address";如果不是就输出"This is not ip address" (1
- 判断输入IP格式是否正确
- 正则表达式判断IP格式是否正确
- 判断字符串是否是正确的IP格式的C语言函数
- JavaScript正则匹配判断IP是否输入正确
- php自带函数判断是否正确的email地址
- 登录时验证,判断服务器IP和网卡信息是否授权
- ios 用正则判断手机号格式是否正确
- java 判断格式是否正确
- HDU 3038 How Many Answers Are Wrong 并查集 (判断区 4000 间值是否正确)