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

来源:互联网 发布:python自动化运维 pdf 编辑:程序博客网 时间:2024/05/01 16:43

题目描述:

写一个算法判断某个字符串是不是一个合法的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;    }};
阅读全文
0 0
原创粉丝点击