判断某个字符串是不是一个合法的IP地址

xiaoxiao2021-02-28  95

题目描述:

写一个算法判断某个字符串是不是一个合法的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; } };
转载请注明原文地址: https://www.6miu.com/read-50951.html

最新回复(0)