HJ90. 合法IP
描述
IPV4地址可以用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此正号不需要出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。
输入描述
输入一个ip地址,保证不包含空格
输出描述
返回判断的结果YES or NO
示例1
输入:
255.255.255.1000
输出:
NO
C 解法, 执行用时: 1ms, 内存消耗: 332KB, 提交时间: 2021-09-09
#include "stdio.h" #include "string.h" typedef unsigned int uint32; int main() { uint32 a[5] = {0}; int fail; while(scanf("%d", &a[0]) != EOF) { fail = 0; for(int i=1; i<4; i++) { getchar();//读走‘.’ scanf("%d", &a[i]); } for(int i=0; i<4; i++) { if(a[i] > 255) fail = 1; } printf("%s\n", (fail? "NO" : "YES")); } return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 344KB, 提交时间: 2021-09-08
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char input[15]; while (scanf("%s", input) != EOF) { char *ptr = strtok(input, "."); int valid = 1; while (ptr != NULL) { int section = atoi(ptr); if (section < 0 || section > 255) { valid = 0; } ptr = strtok(NULL, "."); } printf("%s\n", valid ? "YES" : "NO"); } return 0; }