判断输入的IP地址是否合法,ip地址的值在0~255之间,先把输入的IP的地址转换为一个字符串。
#define LEN (sizeof(xx)/sizeof(xx[0]))
const char *xx[] = {"192.168.1.1", "10.0.0.1", "127.256.0.1", "iugerjiogjioe", "172.16,0.1", "4", "0"};const char *m[] = {"NO", "YES"};int checkIpisValid(const char *ip)
{int i = 0, n[4] = {0};char c[4];if (7 == sscanf(ip, "%d%c%d%c%d%c%d", &n[0], &c[0], &n[1], &c[1], &n[2], &c[2], &n[3])){for (i = 0; i < 3; i++){if (c[i] != '.'){return 0;}}for (i = 0; i < 4; i++){if (n[i] > 255 || n[i] < 0){return 0;}}return 1;}else{return 0;}
}int main()
{int ii = 0;for (ii = 0; ii < LEN; ii++){printf("%s, %s\n", xx[ii], m[checkIpisValid(xx[ii])]);}
}
192.168.1.1, YES
10.0.0.1, YES
127.256.0.1, NO
iugerjiogjioe, NO
172.16,0.1, NO
4, NO
0, NO
请按任意键继续. . .
在vc++上调试的结果如上图所示。