国产探花免费观看_亚洲丰满少妇自慰呻吟_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


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

圖片精選

主站蜘蛛池模板: 黑龙江省| 施秉县| 东安县| 山东| 桐乡市| 临朐县| 乳山市| 南涧| 杭锦后旗| 霍林郭勒市| 阿荣旗| 哈密市| 三门县| 遵义县| 浑源县| 龙海市| 海城市| 江华| 冷水江市| 巧家县| 邵阳市| 庄河市| 古田县| 平安县| 名山县| 南宁市| 山东省| 汝南县| 桐梓县| 镇赉县| 钟祥市| 河南省| 新绛县| 繁峙县| 子洲县| 宣汉县| 依兰县| 长兴县| 汝阳县| 新宾| 甘孜县|