欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

判断两个IP是否属于同一子网(没有判断掩码或ip是否合法,测试通过牛客)

程序员文章站 2022-05-19 14:47:43
...
#include<bits/stdc++.h>
using namespace std;
void split(char s[],int a[])
{
    char *p=strtok(s,".");
    int num=0;
    while(p!=NULL)
    {
        a[num++]=atoi(p);
        p=strtok(NULL,".");
    }
}
int main()
{
    char y[10],ip1[10],ip2[10];
    while(scanf("%s%s%s",y,ip1,ip2)!=EOF)
    {
        int yn[4],p1[4],p2[4];
        split(y,yn);
        split(ip1,p1);
        split(ip2,p2);
        int i;
        for(i=0; i<4; i++)
            if((p1[i]&yn[i])!=(p2[i]&yn[i]))break;
        if(i==4)cout<<"0"<<endl;
        else cout<<"2"<<endl;
    }
    return 0;
}
判断两个IP是否属于同一子网(没有判断掩码或ip是否合法,测试通过牛客)
相关标签: 算法