zzulioj 1874 蛤玮学计网 (“玲珑杯”郑州轻工业学院第八届ACM程序设计大赛暨河南高校邀请赛-正式赛)

1874: 蛤玮学计网

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 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

Submit Status Web Board

啥也不想说了  唉 

一定要是四个符合条件的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;
} 


你可能感兴趣的:(zzulioj1874)