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地址格式正确。

目录
相关文章
|
1月前
|
算法 容器
OJ刷题日记:2、双指针(2)
OJ刷题日记:2、双指针(2)
18 0
|
2天前
|
容器
【LeetCode刷题】栈和队列题目练习~
【LeetCode刷题】栈和队列题目练习~
|
1月前
|
算法 测试技术
OJ刷题日记:1、双指针(1)
OJ刷题日记:1、双指针(1)
22 0
|
1月前
刷题之Leetcode160题(超级详细)
刷题之Leetcode160题(超级详细)
16 0
|
1月前
|
算法
刷题之Leetcode704题(超级详细)
刷题之Leetcode704题(超级详细)
17 0
|
1月前
|
算法
刷题之Leetcode59题(超级详细)
刷题之Leetcode59题(超级详细)
11 0
|
1月前
|
索引
刷题之Leetcode35题(超级详细)
刷题之Leetcode35题(超级详细)
18 0
|
1月前
刷题之Leetcode54题(超级详细)
刷题之Leetcode54题(超级详细)
11 0
|
1月前
leetcode232刷题打卡
leetcode232刷题打卡
13 0
|
机器学习/深度学习 C语言
OJ刷题之旅(1)
OJ刷题之旅(1)
66 0

热门文章

最新文章