您的位置:首页 > 其它

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

2014-11-19 23:05 253 查看
输入任意一个字符串,判断是否为合法IP

bool IsIPAddress(const char * str){
//先判断形式是否合法,

//检查是否只包含点和数字
for(int i = 0; str[i] != '\0'; i++){
if(!IsDigit(str[i]) && str[i] != '.')
return false;
}

//检查是否形如X.X.X.X
int count = 0;
for(int i = 0; str[i+1] != '\0'; i++){
if(IsDigit(str[i]) && str[i+1] == '.' )
count++;
}
if(count != 3)
return false;

//检查区间是否合法
int temp = 0;
int j = 0;
for(int i = 0; str[i] != '\0'; i++){
if(str[i] != '.'){
temp = (temp * 10 * j + int(str[i] - '0'));
j++;
}
else{
if(temp <= 255){
temp = 0;
j = 0;
}
else
return false;
}
}

//最后一个也要判断
if(temp > 255)
return false;

//通过所有测试,返回正确
return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: