rt
检查地址是否合法的代码块如下
评测记录
bool check(string ad)
{
bool con=0;
int juhao=0,maohao=0,sum=0;
ad=" "+ad;
for(int j=1;j<ad.length();j++)
{
if(sum==0&&ad[j]=='0'&&ad[j-1]=='0')
{
con=1;
break;
}
if(juhao>3||maohao>1||(juhao!=3&&maohao>0))
{
con=1;
break;
}
if(ad[j]=='.')
{
juhao++;
if(sum>255||!(ad[j-1]>='0'&&ad[j-1]<='9'))
{
con=1;
break;
}
sum=0;
}
else if(ad[j]==':')
{
maohao++;
if(sum>255||!(ad[j-1]>='0'&&ad[j-1]<='9'))
{
con=1;
break;
}
sum=0;
}
else if(ad[j]>='0'&&ad[j]<='9')
{
sum*=10;
sum+=ad[j]-'0';
}
else
{
con=1;
break;
}
}
if(sum>65535||juhao!=3||maohao!=1)con=1;
return con;
}