Dillydally


私信TA

用户名:695347743

访问量:10794

签 名:

One minute on the stage needs ten years practice off stage.

等  级
排  名 2274
经  验 2307
参赛次数 0
文章发表 11
年  龄 18
在职情况 学生
学  校 湖北工业大学
专  业

  自我简介:



参考代码:

/*问题 1116: IP判断

时间限制: 1Sec 内存限制: 128MB 提交: 449 解决: 194


题目描述

在基于Internet的程序中,我们常常需要判断一个IP字符串的合法性。 

合法的IP是这样的形式: 

A.B.C.D 

其中A、B、C、D均为位于[0, 255]中的整数。为了简单起见,我们规定这四个整数中不允许有前导零存在,如001这种情况。 

现在,请你来完成这个判断程序吧^_^


输入

输入由多行组成,每行是一个字符串,输入由“End of file”结束。 

字符串长度最大为30,且不含空格和不可见字符


输出

对于每一个输入,单独输出一行 

如果该字符串是合法的IP,输出Y,否则,输出N


样例输入

1.2.3.4

a.b.c.d

267.43.64.12

12.34.56.bb

210.43.64.129

-123.4.5.6

样例输出

Y

N

N

N

Y

N*/

#include<iostream>

#include<cstdlib>

using namespace std;

bool judge(int n)

{

if(n>=0&&n<=255)

return true;

return false;

}

int main()

{

char s[100];


while(cin>>s)

{

int flag=0;

int i=0,j=0,k=3;

char a[10],b[10],c[10],d[10];

for(i=0;s[i]!='\0';i++)

{

if(s[i]!='.'&&(s[i]<48||s[i]>57))

{

cout<<"N"<<endl;

flag=1;

break;

}

}

if(flag)

continue;

i=j=0;

while(s[i]!='.')

{

a[j++]=s[i++];

a[j]='\0';

}

i++;

int a1=atoi(a);

j=0;

while(s[i]!='.')

{

b[j++]=s[i++];

b[j]='\0';

}

i++;

int b1=atoi(b);

j=0;

while(s[i]!='.')

{

c[j++]=s[i++];

c[j]='\0';

}

i++;

int c1=atoi(c);

j=0;

while(s[i]!='\0')

{

d[j++]=s[i++];

d[j]='\0';

}

int d1=atoi(d);

if(judge(a1)&&judge(b1)&&judge(c1)&&judge(d1))

cout<<"Y"<<endl;

else

cout<<"N"<<endl;

}


 

0.0分

4 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区