判断一个IP是否有效(牛客网通过正确)


#include 
#include 
using namespace std;
bool ValidIpAddr(char const * str)
{
int n, ip1, ip2, ip3, ip4;
char dummy;
bool valid = true;
n = sscanf(str, "%3d.%3d.%3d.%3d%1c", &ip1, &ip2, &ip3, &ip4, &dummy);
if (n != 4 || ((ip1 < 0) || (ip1 > 0xff)) || ((ip2 < 0) || (ip2 > 0xff)) || ((ip3 < 0) || (ip3 > 0xff)) ||((ip4 < 0) || (ip4 > 0xff))) {
valid = false;
}
return valid;
}
int main()
{
string str;
while(cin>>str)
{
if(ValidIpAddr(str.c_str()))
cout<<"YES"<