判断一个字符串是否为合法IP

时间:2023-03-09 08:41:08
判断一个字符串是否为合法IP

输入任意一个字符串,判断是否为合法IP

 bool IsIPAddress(const char * str){
//先判断形式是否合法, //检查是否只包含点和数字
for(int i = ; str[i] != '\0'; i++){
if(!IsDigit(str[i]) && str[i] != '.')
return false;
} //检查是否形如X.X.X.X
int count = ;
for(int i = ; str[i+] != '\0'; i++){
if(IsDigit(str[i]) && str[i+] == '.' )
count++;
}
if(count != )
return false; //检查区间是否合法
int temp = ;
int j = ;
for(int i = ; str[i] != '\0'; i++){
if(str[i] != '.'){
temp = (temp * * j + int(str[i] - ''));
j++;
}
else{
if(temp <= ){
temp = ;
j = ;
}
else
return false;
}
} //最后一个也要判断
if(temp > )
return false; //通过所有测试,返回正确
return true;
}