#include<iostream>
using namespace std;
#include<string>
using std::string;
#include<cstdlib>
bool IsIpAddr(string str)
{
string temp;
int x,i=-1,j=0;
while(j++<4){
temp="";
for(++i;str[i]!='.' && i<str.size();i++)
{
if(str[i]>='0'&&str[i]<='9')
temp+=str[i];
else
return false;
}
x=atoi(temp.c_str());
if(x<0 || x>255)
{
cout<<"NO."<<j<<"section:"<<x<<" is ill,sorry..."<<endl;
return false;
}
cout<<"NO."<<j<<"section:"<<x<<" is ok"<<endl;
}
if(i!=str.size())
return false;
return true;
}
int main()
{
string s;
cout<<"please enter a string~"<<endl;
cin>>s;
if(IsIpAddr(s))
cout<<"it is a ip addr"<<endl;
else
cout<<"it is not a ip addr"<<endl;
return 0;
}
只测试了一些常见情况,可能还存在漏洞。