每行有一个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"); } }