描述
請解析ip位址和對應的掩碼,進行分類識別。要求按照a/b/c/d/e類位址歸類,不合法的位址和掩碼單獨歸類。所有的ip位址劃分為 a,b,c,d,e五類
a類位址1.0.0.0~126.255.255.255;
b類位址128.0.0.0~191.255.255.255;
c類位址192.0.0.0~223.255.255.255;
d類位址224.0.0.0~239.255.255.255;
e類位址240.0.0.0~255.255.255.255
私網ip範圍是:
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
子網掩碼為前面是連續的1,然後全是0
知識點字串,迴圈,查詢,搜尋,排序,函式,指標,列舉,位運算,結構體,聯合體,檔案操作,遞迴
執行時間限制
0m記憶體限制0輸入
多行字串。每行乙個ip位址和掩碼,已~隔開。如:
10.70.44.68~255.254.255.0
1.0.0.1~255.0.0.0
192.168.0.2~255.255.255.0
19..0.~255.255.255.0
輸出統計a、b、c、d、e、錯誤ip位址或錯誤掩碼、私有ip的個數,之間以空格隔開,根據上面的ip,可以得到:
1.0.0.1~255.0.0.0 ----a類
192.168.0.2~255.255.255.0 ----c類,私有
10.70.44.68~255.254.255.0----錯誤的掩碼
19..0.~255.255.255.0-----錯誤的ip
可以得到統計資料如下:
1 0 1 0 0 2 1
樣例輸入
10.70.44.68~255.254.255.0 1.0.0.1~255.0.0.0 192.168.0.2~255.255.255.0 19..0.~255.255.255.0
樣例輸出
1 0 1 0 0 2 1
思路:按行讀取ip位址及掩碼,然後逐行按『.』(點)把字串變成數字放進陣列,通過判斷ip位址及掩碼的數值個數及範圍判斷其有效性;(笨方法,僅是一種思路,用正規表示式會簡單很多)
**如下:
#include #include #include using namespace std;
bool isip(vector&a,vector&b)
while(now >= pre)
b.push_back(temp);
temp = 0;
pre = i+1;
i++;
}else
i++;
} int now = i-1,ol = 1;
while(now >= pre)
b.push_back(temp);
int len = b.size();
//cout << len;
if(len == 4)
return true;
}else
return false;
}bool ismesk(vector&a)
b.push_back(temp);
temp = 0;
pre = i+1;
i++;
}else
i++;
} int now = i-1,ol = 1;
temp = 0;
while(now >= pre)
b.push_back(temp);
int len = b.size();
if(len == 4)
for(int j = 0;j < 4;j++)
return true;
}else
return false;
} bool isnumber(char c)
int main()
for(int j = 0;j < i;j++)
v.push_back('\0');
bool isip = isip(v,b),ismask = ismesk(v);
if(isip && ismask)
else
err_back++;
} cout << a_back << " " << b_back << " " << c_back << " "
<< d_back << " " << e_back << " " << err_back << " "
<< si_back <
識別有效的IP位址和掩碼並進行分類
請解析ip位址和對應的掩碼,進行分類識別。要求按照a b c d e類位址歸類,不合法的位址和掩碼單獨歸類。所有的ip位址劃分為 a,b,c,d,e五類 a類位址1.0.0.0 126.255.255.255 b類位址128.0.0.0 191.255.255.255 c類位址192.0.0.0 2...
識別有效的IP位址和掩碼並進行分類統計
include include include include using namespace std static int result 7 儲存最後結果的陣列 string chang string str 轉換為二進位制 itoa num,tmp1,2 把num轉換為二進位制,並以字串形式儲存...
識別有效的IP位址和掩碼並進行分類統計
標籤 空格分隔 oj 演算法 請解析ip位址和對應的掩碼,進行分類識別。要求按照a b c d e類位址歸類,不合法的位址和掩碼單獨歸類。所有的ip位址劃分為 a,b,c,d,e五類 a類位址1.0.0.0 126.255.255.255 b類位址128.0.0.0 191.255.255.255 ...