标签:count false 468 temp 验证 int IP IP地址 return
class Solution {
public:
bool isIPv4(string IP)
{
if(IP[IP.size()-1]=='.')
return false;
string temp;
stringstream ss(IP);
int count=0;
while (getline(ss, temp, '.'))
{
count++;
int a = atoi(temp.c_str());
if(count>4 ||temp.empty() || temp.size()>3 || a > 255 || (a == 0 && temp != "0"))
return false;
//atoi接受的是char *类型的参数,也就是一个char数组,temp是string类型,所以先用.c_str()函数转成字符数组
if (a != 0)
{
string s = temp.substr(0, 1);
if (s == "0")
return false;
}
for(int i=0;i<temp.size();i++)
{
if(!(temp[i]>='0' && temp[i]<='9'))
return false;
}
}
if(count==4)
return true;
else return false;
}
bool isIPv6(string IP)
{
int count=0;
string temp;
stringstream ss(IP);
set<char>store{ 'A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f' };
if(IP[IP.size()-1]==':')
return false;
while (getline(ss, temp, ':'))
{
count++;
if(count>8 || temp.length() > 4 || temp.empty())
return false;
for (int i = 0; i < temp.size(); i++)
{
if (!(temp[i] - '0' >= 0 && temp[i] - '0' <= 9 || store.find(temp[i]) != store.end()))
return false;
}
}
if(count==8)
return true;
else
return false;
}
string validIPAddress(string IP) {
if (IP.empty())
return "Neither";
for (int i = 0; i < IP.length(); i++)
{
if (IP[i] == '.')
return isIPv4(IP) ? "IPv4" : "Neither";
else if (IP[i] == ':')
return isIPv6(IP) ? "IPv6" : "Neither";
else if(i==IP.length()-1)
return "Neither";
}
}
};
标签:count,false,468,temp,验证,int,IP,IP地址,return 来源: https://blog.csdn.net/Scarlett_Guan/article/details/99186437
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。