当前位置: 首页 > news >正文

C语言 | Leetcode C语言题解之第468题验证IP地址

题目:

题解:

char * validIPAddress(char * queryIP) {int len = strlen(queryIP);if (strchr(queryIP, '.')) {// IPv4int last = -1;for (int i = 0; i < 4; ++i) {int cur = -1;if (i == 3) {cur = len;} else {char * p = strchr(queryIP + last + 1, '.');if (p) {cur = p - queryIP;}}if (cur < 0) {return "Neither";}if (cur - last - 1 < 1 || cur - last - 1 > 3) {return "Neither";}int addr = 0;for (int j = last + 1; j < cur; ++j) {if (!isdigit(queryIP[j])) {return "Neither";}addr = addr * 10 + (queryIP[j] - '0');}if (addr > 255) {return "Neither";}if (addr > 0 && queryIP[last + 1] == '0') {return "Neither";}if (addr == 0 && cur - last - 1 > 1) {return "Neither";}last = cur;}return "IPv4";}else {// IPv6int last = -1;for (int i = 0; i < 8; ++i) {int cur = -1;if (i == 7) {cur = len;} else {char * p = strchr(queryIP + last + 1, ':');if (p) {cur = p - queryIP;}}if (cur < 0) {return "Neither";}if (cur - last - 1 < 1 || cur - last - 1 > 4) {return "Neither";}for (int j = last + 1; j < cur; ++j) {if (!isdigit(queryIP[j]) && !('a' <= tolower(queryIP[j]) && tolower(queryIP[j]) <= 'f')) {return "Neither";}}last = cur;}return "IPv6";}
}

http://www.mrgr.cn/news/46818.html

相关文章:

  • 你喜欢用什么编辑器?
  • 一文通透OpenVLA及其源码剖析——基于Prismatic VLM(SigLIP、DinoV2、Llama 2)及离散化动作预测
  • C#进阶-在Ubuntu上部署ASP.NET Core Web API应用
  • 前端开发:Web前端和HTML
  • 超大规模分类(三):KNN softmax
  • bert微调下游任务-情感分析
  • IDEA必装的插件:Spring Boot Helper的使用与功能特点
  • 冷热数据分离
  • Python中的列表:全面解析与应用
  • 【C语言】值传递和指针传递
  • Excel重新踩坑1:加密保护工作簿、编辑保护工作簿、编辑保护工作表、允许编辑区域;填充柄;同时编辑多个单元格为同一个值
  • COLMAP安装踩坑记录
  • 社工字典生成工具 —— CeWL 使用手册
  • QDateEdit Class
  • 【python】OS(文件管理)模块(库)
  • 1143. 最长公共子序列
  • 【Linux】—Xshell、Xftp安装
  • 新赚米渠道,天工AI之天工宝典!
  • 力扣21~25题
  • 【数据结构与算法】简单聊聊图数据的存储
  • CeWL | CeWL 使用实例
  • 【Kubernets】通讲CNI(Container Network Interface)容器网络接口实现方案
  • PGMP-04 Program Benefits Management 项目集效益管理
  • snmpwalk使用说明
  • 基于springboot vue3 工商局商家管理系统设计与实现
  • Python对PDF文件页面的旋转和切割