每行有一个IP地址,IP地址的形式为a.b.c.d,其中a、b、c、d都是整数。
可能有多组测试数据,对于每组数据,如果IP地址合法则输出"Yes!”,否则输出"No!”。 合法的IP地址为: a、b、c、d都是0-255的整数。
255.255.255.255 512.12.2.3
Yes! No!
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<malloc.h>
#include<limits.h>
int main()
{
char str[10001];
while(scanf("%s",str)!=EOF)
{
int a[8];
for(int i=0;i<8;i++)
{
a[i]=0;
}
int flag=0;
int k=0;
int len = strlen(str);
int start=0,end;
for(int i=0;i<len;i++)
{
if(i+1==len)
{
end=i+1;
for(int j=end-1;j>=start;j--)
{
a[k]=a[k]+(str[j]-'0')*pow(10,end-j-1);
}
if(a[k]<0 || a[k]>255)
{
flag=1;
break;
}
k++;
start=i+1;
}
if(str[i]=='.')
{
end=i;
for(int j=end-1;j>=start;j--)
{
a[k]=a[k]+(str[j]-'0')*pow(10,end-j-1);
}
if(a[k]<0 || a[k]>255)
{
flag=1;
break;
}
k++;
start=i+1;
}
}
for(int i=0;i<k;i++)
{
//printf("%d ",a[i]);
}
if(flag==0 && k==4)
printf("Yes!\n");
else
printf("No!\n");
}
}