1006:IP判断
Description
在基于Internet的程序中,我们常常需要判断一个IP字符串的合法性。
合法的IP是这样的形式:
A.B.C.D
其中A,B,C,D均位于【0,255】中的整数。为了简单起见,我们规定这四个整数中不允许有 前导0存在,如001这种情况。
现在,请你来完成这个判断程序吧。
Input
输入由多行组成,每行是一个字符串,输入由“end of file”结束。
字符串长度最大为30,且不含空格和不可见字符。
Output
对于每一个输入,单独输出=一行。
如果该字符串合法的IP,输出Y,否则,输出N。
Sample Input
1.2.3.4
a.b.c.d
267.43.64.12
12.34.56.bb
210.43.64.129
-123.4.5.6
Sample Output
Y
N
N
N
Y
N
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
char ip[1000];
int a,b,c,i,j,k,num[5];
while(scanf("%s",ip)!=EOF)
{
a=strlen(ip);
b=1;
c=0;
memset(num,0,sizeof(num));
for(i=0,j=1,k=1;i<a;i++)
{
if(ip[i]=='.')
{
c++;
k=1;
j++;
}
else
{
if(k==1&&ip[i]=='0')
{
b=0;
break;
}
if(ip[i]>='0'&&ip[i]<='9')
{
num[j]=num[j]*10+ip[i]-'0';
k++;
}
else
{
b=0;
break;
}
}
}
if(c!=3)
b=0;
for(i=1;i<=4;i++)
if(num[i]<0||num[i]>255)
{
b=0;
break;
}
if(b==0)
cout<<"N";
else
cout<<"Y";
cout<<endl;
}
return 0;
}
经典 分支结构