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
相關文章
相關標籤/搜索