思路:输入字符串的时候,把分隔符“.”读取出来,然后判断分隔符旁边的数字是否在0~~255之间,然后判断是否合法。
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
bool IsValidIp(char* str)
{
if(str == NULL)
{
return false;
}
char a[40];
if(sscanf(str,"%d.%d.%d.%d",&a[0],&a[1],&a[2],&a[3]) != 4)
{
return false;
}
for(int i = 0; i < 4; ++i)
{
if(a[i] < 0 || a[i] > 255)
{
return false;
}
}
return true;
}
int _tmain(int argc, _TCHAR* argv[])
{
char* pstr = "127.0.0.1";
cout<<IsValidIp(pstr)<<endl;
char* pStr = "nvd.er3.56.34";
cout<<IsValidIp(pStr)<<endl;
getchar();
return 0;
}