IP判断

 IP判断

题目描述

在基于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


AC代码:
 1 #include <string>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <iostream>
 5 #include <algorithm>
 6 using namespace std;
 7  
 8 int main()
 9 {
10     string ip;
11     while (cin>>ip)
12     {
13         if (ip=="End")
14             break;
15         int sum=0;bool flag=1;
16         int len=ip.size();
17         for (int i=0;i<len;i++)
18         {
19             if (ip[0]=='-')
20             {
21                 flag=false;
22                 break;
23             }
24             else
25             {
26                 if (ip[i]=='.')
27                 {
28                     if (sum<0 || sum>255)
29                     {
30                         flag=false;
31                         break;
32                     }
33                     sum=0;
34                 }
35                 else if (ip[i]-'0'<0 || ip[i]-'0'>9)
36                 {
37                     flag=false;
38                     break; 
39                 }
40                 else
41                     sum+=sum*10+(ip[i]-'0');
42             }
43             if (!flag)
44                 break;
45         }
46         if (flag)
47             printf("Y\n");
48         else
49             printf("N\n");
50     }
51     return 0;
52 }
IP

 

 
posted @ 2019-06-20 20:31  LHR-LHR  阅读(284)  评论(0编辑  收藏  举报