在基於Internet的程序中,咱們經常須要判斷一個IP字符串的合法性。
合法的IP是這樣的形式:
A.B.C.D
其中A、B、C、D均爲位於[0, 255]中的整數。爲了簡單起見,咱們規定這四個整數中不容許有前導零存在,如001這種狀況。
如今,請你來完成這個判斷程序吧^_^
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 }