OJ刷题之旅(3)

简介: OJ刷题之旅(3)

题目描述


在网络课程上,我学到了很多有关IP的知识。IP全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如192.168.100.16,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。 但是粗心的我,常常将IP地址写错,现在需要你用程序来判断。

输入


输入有多个case,每个case有一行,不超过100个字符。

输出


对于每个case,判断输入的IP是否正确,如果正确输入YES,否则NO。

样例


输入  192.168.100.16

输出   YES


题解


以下是一个简单的C语言程序,用于判断输入的IP地址是否正确:

#include <stdio.h>
#include <string.h>
int isValidIP(char* ip) {
int len = strlen(ip);
int dotCount = 0;
int num = 0;
for (int i = 0; i < len; i++) {
if (ip[i] == '.') {
dotCount++;
if (num > 255) {
return 0;
}
num = 0;
} else if (ip[i] >= '0' && ip[i] <= '9') {
num = num * 10 + (ip[i] - '0');
} else {
return 0;
}
}
if (dotCount != 3 || num > 255) {
return 0;
}
return 1;
}
int main() {
char ip[101];
while (scanf("%s", ip) != EOF) {
if (isValidIP(ip)) {
printf("YES\n");
} else {
printf("NO\n");
}
}
return 0;
}

该程序使用了一个名为 isValidIP 的函数,该函数接受一个字符串参数 ip,并返回一个整数值,表示该IP地址是否合法。在主函数中,程序从标准输入读取每个输入的IP地址,并打印出相应的判断结果。


函数 isValidIP 中,程序使用循环遍历IP地址中的每个字符,统计其中的点的数量和每个数字的大小,以便进行检查。如果IP地址格式不正确,则函数返回0;否则返回1,表示IP地址格式正确。

相关文章
|
机器学习/深度学习 C语言
OJ刷题之旅(1)
OJ刷题之旅(1)
|
安全 数据安全/隐私保护 C语言
OJ刷题之旅 (2)
OJ刷题之旅 (2)
|
8月前
|
Serverless
每日OJ刷题
每日OJ刷题
49 1
|
8月前
|
算法
OJ刷题:杨氏矩阵
OJ刷题:杨氏矩阵
40 0
OJ题解
   这是一道OJ上的题目:小慧过生日,小明(小明真忙)要买鲜花送她。每枝红玫瑰(过生日送玫瑰,老贺不懂合适不合适)5元,满5支送1枝,满20枝送5枝。小明一共有n(n&gt;10)元钱,最多能买到多少?  样例输入:135  样例输出:33   不少同学做不出来。今天一位同学问我,那就分析一下。  其中看不懂这个规则的同学不少,快找人需要送花的人,享受一下购物优惠吧。  以样例说事,33
1159 0
|
9月前
|
算法 测试技术
OJ刷题日记:1、双指针(1)
OJ刷题日记:1、双指针(1)
67 0
|
9月前
|
算法 容器
OJ刷题日记:2、双指针(2)
OJ刷题日记:2、双指针(2)
68 0
|
9月前
|
算法 索引
OJ刷题日记:5、二分查找(1)
OJ刷题日记:5、二分查找(1)
66 0

热门文章

最新文章