IP判断 oj139

来源:互联网 发布:惠州网络英才网 编辑:程序博客网 时间:2024/06/03 21:59

IP判断

发布时间: 2017年5月25日 19:57   最后更新: 2017年5月26日 00:47   时间限制: 1000ms   内存限制: 128M

在基于Internet的程序中,我们常常需要判断一个IP字符串的合法性。 
合法的IP是这样的形式: 
A.B.C.D 
其中A、B、C、D均为位于[0, 255]中的整数。为了简单起见,我们规定这四个整数中不允许有前导零存在,如001这种情况。 
现在,请你来完成这个判断程序吧^_^

输入由多行组成,每行是一个字符串,输入由 End of file 结束。 字符串长度最大为30,且不含空格和不可见字符

对于每一个输入,单独输出一行 如果该字符串是合法的IP,输出Y,否则,输出N

 复制
1.2.3.4a.b.c.d267.43.64.1212.34.56.bb210.43.64.129-123.4.5.6
YNNNYN
#include <iostream>#include <cstring>using namespace std;int main(){char ip[31];while (cin>>ip){int sum = 0;int flag = 1;int ip_size = strlen(ip);for (int i = 0; i < ip_size; i++){if (ip[0] == '-'){flag = 0;break;}else{if (ip[i] == '.'){if (sum<0 || sum>255){flag = 0;break;}sum = 0;}else if (ip[i] - '0'<0 || ip[i] - '0'>9){flag = 0;break;}elsesum += sum * 10 + (ip[i] - '0');}if (flag == 0)break;}if (flag)cout<<"Y\n";elsecout << "N\n";}return 0;}