1874: 蛤玮学计网
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1038 Solved: 161
Submit Status Web Board
Description
蛤玮最近学习了关于ip的知识,于是他迫不及待的想把新知识传授给她的妹子.蛤玮的妹子随便写下了一个字符串,蛤玮现在要告诉她这个字符串是不是一个合法的ip地址.
为简单考虑,仅考虑ipv4的情况,即合法ip为形同"a1.a2.a3.a4",且0<=ai<=255。
Input
第一行为一个整数T(1<=T<=20),代表数据组数。接下来T行每行一个字符串,其中不包含空格,Tab以及回车,长度不超过50。
Output
若合法,输出"Yes",否则输出"No"(不包含引号)。
Sample Input
210.105.240.51f.a.t.e
Sample Output
YesNo
HINT
我们认为010.105.240.051是合法的。
Source
啥也不想说了 唉
一定要是四个符合条件的ai 注意是四个
一定要是3个符合条件的. 注意是3个。。
#include<stdio.h>
#include <string.h>
int main()
{
int ncase;
scanf("%d",&ncase);
while(ncase--)
{
char str[55];
memset(str,0,sizeof(str));
scanf("%s",str);
int sum=0,i=0,count=0,num=0;
bool flag=false,is=false;
while(str[i]!='\0')
{
while(str[i]>='0'&&str[i]<='9')
{
is=true;
sum=sum*10+(str[i]-'0');
if(sum>255)
{
flag=true;
break;
}
i++;
}
if(is)
num++;
if(str[i]=='\0'||flag)
{
if(sum>255||sum<0)
flag=true;
break;
}
if(sum<0||sum>255||str[i]!='.')
{
flag=true;
break;
}
else
count++;
sum=0;
is=false;
i++;
}
if(!flag&&num==4&&count==3)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}