| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1642 人关注过本帖
标题:判断ip地址求助
只看楼主 加入收藏
堇色丶旧梦
Rank: 1
来 自:山东
等 级:新手上路
帖 子:9
专家分:6
注 册:2015-12-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
判断ip地址求助
题目描述
IP是英文Internet Protocol的缩写,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。正是因为有了IP协议,因特网才得以迅速发展成为世界上最大的、开放的计算机通信网络。因此,IP协议也可以叫做“因特网协议”。

互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(IP Address),在Internet上,一种给主机编址的方式。常见的IP地址,分为IPv4与IPv6两大类。

IP地址被用来给Internet上的电脑一个编号。大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信。我们可以把“个人电脑”比作“一台电话”,那么“IP地址”就相当于“电话号码”,而Internet中的路由器,就相当于电信局的“程控式交换机”。

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

现在,根据以下规则,编写程序来判断一个字符串是否是“点分十进制”表示的IP地址。

1 IP地址由四个整数跟三个'.'组成,就是“a.b.c.d”的形式。

2 a,b,c,d四个部分的数字位数都可以是1~3位,其整数值都在0~255之间。

3 不能有除了数字和'.'之外的字符出现。

输入
输入有多行,每行是一个字符串s,s不超过100个字符。到文件尾结束。


输出
对于每个输入,判断串s是否为合法的IP地址,如果正确输出YES,否则NO。


样例输入
192.168.100.16

样例输出
YES



该怎样写。。。
搜索更多相关主题的帖子: Internet 计算机系统 计算机网络 IP协议 互联网 
2015-12-06 13:48
堇色丶旧梦
Rank: 1
来 自:山东
等 级:新手上路
帖 子:9
专家分:6
注 册:2015-12-6
收藏
得分:0 
程序代码:
#include <stdio.h>
int main()
{
    char s[101];
    int a,b,c,d;
    while(scanf("%d",&a) !=EOF )
    {scanf(".%d.%d.%d",&b,&c,&d);
        if(a>=0&&a<=255&&b>=0&&b<=255&&c>=0&&c<=255&&d>=0&&d<=255)
            printf("Yes\n");
        else
            printf("No\n");
    }
    return 0;
}

不可能这么简单吧。。表示不懂有什么深奥的

若只得烟花般随风飘散丶
请容许我燃尽这半生绚烂丶
2015-12-06 13:58
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
#include<stdio.h>
#include<stdlib.h>
main()
{int a,b,c,d,i;
  char e,f,g;
  i=scanf("%d%c%d%c%d%c%d",&a,&e,&b,&f,&c,&g,&d);
  if(i==7&&a>=0&&a<=255&&b>=0&&b<=255&&c>=0&&c<=255&&d>=0&&d<=255&&e=='.'&&f=='.'&&g=='.')
     printf("Yes");
  else
     printf("No");
  system ("pause");
  return 0;
}
2015-12-06 17:11
堇色丶旧梦
Rank: 1
来 自:山东
等 级:新手上路
帖 子:9
专家分:6
注 册:2015-12-6
收藏
得分:0 
回复 3楼 ehszt
请问判断中的i==7是什么意思啊
初学不懂。。。
还有这个只是一次而不是可以输入多次。

若只得烟花般随风飘散丶
请容许我燃尽这半生绚烂丶
2015-12-06 17:26
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
i==7就是,7个数据的格式都正确,这样可以重复输入
#include<stdio.h>
#include<stdlib.h>
main()
{int a,b,c,d,i;
char e,f,g,gt[1024];
loop:i=scanf("%d%c%d%c%d%c%d",&a,&e,&b,&f,&c,&g,&d);
if(i==7&&a>=0&&a<=255&&b>=0&&b<=255&&c>=0&&c<=255&&d>=0&&d<=255&&e=='.'&&f=='.'&&g=='.')
printf("Yes\n");
else
printf("No\n");
gets(gt);
goto loop;
 system ("pause");
return 0;
}


[此贴子已经被作者于2015-12-6 17:36编辑过]

2015-12-06 17:30
堇色丶旧梦
Rank: 1
来 自:山东
等 级:新手上路
帖 子:9
专家分:6
注 册:2015-12-6
收藏
得分:0 
回复 5楼 ehszt
O
了解了
如果是以EOF结尾要怎么表示。。

若只得烟花般随风飘散丶
请容许我燃尽这半生绚烂丶
2015-12-06 17:42
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:10 
回复 6楼 堇色丶旧梦
根据题意,貌似应该是一次性输入多个数据,然后程序一次性输出判断结果的。
建议楼主建立数组,把判断结果保存起来而不是直接输出

φ(゜▽゜*)♪
2015-12-06 17:55
堇色丶旧梦
Rank: 1
来 自:山东
等 级:新手上路
帖 子:9
专家分:6
注 册:2015-12-6
收藏
得分:0 
回复 7楼 书生牛犊

oj上边缘数据太多。。
考虑不周全

若只得烟花般随风飘散丶
请容许我燃尽这半生绚烂丶
2015-12-06 18:02
快速回复:判断ip地址求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043582 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved