国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

[華為OJ--C++]075-判斷兩個IP是否屬于同一子網

2019-11-08 03:17:53
字體:
來源:轉載
供稿:網友

題目描述:

    子網掩碼是用來判斷任意兩臺計算機的ip地址是否屬于同一子網絡的根據。 子網掩碼與IP地址結構相同,是32位二進制數,其中網絡號部分全為“1”和主機號部分全為“0”。利用子網掩碼可以判斷兩臺主機是否在同一子網中。若兩臺主機的IP地址分別與它們的子網掩碼相“與”后的結果相同,則說明這兩臺主機在同一子網中。

輸入描述:輸入子網掩碼、兩個ip地址

輸出描述:判斷結果;0:IP1與IP2屬于同一子網絡; 1:IP地址或子網掩碼格式非法;  2:IP1與IP2不屬于同一子網絡

輸入例子:

255.255.255.0

192.168.224.256

192.168.10.4

輸出例子:

1

算法實現:

#include<iostream>#include<vector>#include<string>using namespace std;/************************************************   * Author: 趙志乾   * Date: 2017-2-17    * Declaration: All Rigths Reserved !!!   ***********************************************/int StrtoInt(string&str,int i,int j);void IPtoData(string&IP,vector<int>&data);bool CheckIPTrue(vector<int>&data);int main(){	string mask,IPaddrA,IPaddrB;	cin>>mask>>IPaddrA>>IPaddrB;	vector<int>mdata(4,0);	vector<int>Adata(4,0);	vector<int>Bdata(4,0);	IPtoData(mask,mdata);	IPtoData(IPaddrA,Adata);	IPtoData(IPaddrB,Bdata);	if(CheckIPTrue(mdata)&&CheckIPTrue(Adata)&&CheckIPTrue(Bdata))	{		for(int i=0;i<mdata.size();i++)		{			if((mdata[i]&Adata[i])!=(mdata[i]&Bdata[i]))			{				cout<<2<<endl;				return 0;			}		}		cout<<0<<endl;	}	else	{		cout<<1<<endl;	}		return 0;}int StrtoInt(string&str,int i,int j){	int ret=0;	while(i<j)	{		ret=ret*10+str[i]-'0';		i++;	}	return ret;}void IPtoData(string&IP,vector<int>&data){	int index=0;	int i=0,j=0;	for(  ;j<IP.length()+1;j++)	{		if((j==IP.length())||(IP[j]=='.'))		{			data[index]=StrtoInt(IP,i,j);			index++;			i=j+1;		}			}}bool CheckIPTrue(vector<int>&data){	for(int i=0;i<data.size();i++)	{		if(data[i]>255)			return false;	}	return true;}

1


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 县级市| 花莲市| 凤城市| 益阳市| 夏邑县| 北碚区| 喀什市| 郁南县| 遵义市| 阿拉善右旗| 秦皇岛市| 武邑县| 武隆县| 宁国市| 两当县| 洪泽县| 毕节市| 兴隆县| 剑河县| 桓仁| 收藏| 洛隆县| 南通市| 邹城市| 贡嘎县| 栖霞市| 湖口县| 通州区| 鄂尔多斯市| 仪征市| 台州市| 七台河市| 湟源县| 炉霍县| 湘潭县| 西城区| 洪雅县| 广河县| 黑水县| 苍梧县| 巫溪县|