判断某个字符串是不是一个合法的IP地址
程序员文章站
2024-03-12 22:20:38
...
题目描述:
写一个算法判断某个字符串是不是一个合法的IP地址。
实现如下:
class Solution
{
public:
//ip字符串输入默认采用IPV4的点分十进制法,合法地址为0.0.0.0-255.255.255.255
bool isLegalIP(const string& ip)
{
int validSegSize = 0; //记录一共有多少个分段
int oneSeg = 0; //记录每个分段的数值
int segLen = 0; //记录是否分段有数值
for (int i = 0; i < ip.length(); ++i)
{
//计算每个分段的数值
if (ip[i] >= '0' && ip[i] <= '9')
{
oneSeg = oneSeg * 10 + (ip[i] - '0');
//如果分段有数值,就置segLen为1
++segLen;
}
else if (ip[i] == '.') //如果此字符为'.',那么就判断之前的那个分段的值是否合法且是否存在值
{
if (oneSeg <= 255 && segLen > 0)
validSegSize++;
else
return false;
oneSeg = 0; //重置分段值
segLen = 0; //重置分段是否存在值
}
else //如果出现0-9或'.'以外的字符都判断为非法
return false;
}
//判断最后一个分段的合法性
if (oneSeg <= 255 && segLen > 0)
validSegSize++;
//判断是否一共有四个分段
if (validSegSize == 4)
return true;
else
return false;
}
};
上一篇: 判断一个正整数是否是2的整数幂
下一篇: 文本加密娱乐版(Java)