题解 | #合法IP#
合法IP
https://www.nowcoder.com/practice/995b8a548827494699dc38c3e2a54ee9
#include <stdio.h> int main() { int p1,p2,p3,p4; char str[105]; p1=-1;p2=-1;p3=-1;p4=-1; while(scanf("%s",str)!=EOF){ sscanf(str,"%d.%d.%d.%d",&p1,&p2,&p3,&p4); int flag=1,t=0; for(int i=0;str[i]!='\0';i++){ if(t==0&&(str[i]=='0'||str[i]<'0'||str[i]>'9')&&str[i+1]>='0'&&str[i+1]<='9'){ flag=0; break; } else{ if(t==0&&str[i]!='.'){ t=1; } else{ if(str[i]=='.'){ t=0; } } } } int num=0; for(int i=0;str[i]!='\0';i++){ if(str[i]=='.')num++; } if(num!=3){ flag=0; } if(flag==0){ printf("NO\n"); continue; } if(p1>=0&&p1<=255&&p2>=0&&p2<=255&&p3>=0&&p3<=255&&p4>=0&&p4<=255){ printf("YES\n"); } else{ printf("NO\n"); } p1=-1;p2=-1;p3=-1;p4=-1; } return 0; }