当前位置: 首页 > 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.lryc.cn/news/459432.html

相关文章:

  • Qt自定义一个圆角对话框
  • C++ 中的自旋锁应用:SpinLockManual、SpinLockGuard 和 SpinLockTryGuard
  • 计算机网络 tcp和udp
  • React(一) 认识React、熟悉类组件、JSX书写规范、嵌入变量表达式、绑定属性
  • 计算机网络 2024 11 10
  • King3399(ubuntu文件系统)风扇驱动
  • 前端开发笔记--html 黑马程序员2
  • django(二):定义第一个函数及url介绍
  • 66 消息队列
  • 【系统分析师】-案例篇-信息系统安全
  • 基于极光优化算法(Polar Lights Optimization, PLO)的多无人机协同三维路径规划(提供MATLAB代码)
  • TypeScript类型体操5
  • 搭建广告展示页Start
  • 无极低码基础版(部署版)课程计划
  • Word文档功能快捷键大全
  • 题目:1297. 子串的最大出现次数
  • 一力破万法,高并发系统优化通解思路
  • P8635 [蓝桥杯 2016 省 AB] 四平方和
  • ElasticSearch是什么?
  • 2024年四非边缘鼠鼠计算机保研回忆(记录版 碎碎念)
  • clickhouse常用脚本语句
  • GeneMark软件的秘钥gm_key失效怎么办?
  • 线性回归逻辑回归-笔记
  • 如何将数据从 AWS S3 导入到 Elastic Cloud - 第 1 部分:Elastic Serverless Forwarder
  • Linux基础-正则表达式
  • 【HTML格式PPT离线到本地浏览】
  • 如何在Vue项目中封装axios
  • linux 配置ssh免密登录
  • 【AI绘画】Midjourney进阶:三分线构图详解
  • 享元模式(C++)