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

c语言练习题55:IP 地址⽆效化

IP 地址⽆效化

题⽬描述: 给你⼀个有效的 IPv4 地址 address ,返回这个 IP 地址的⽆效化版本。 所谓⽆效化 IP 地址,其实就是⽤ "[.]" 代替了每个 "."。

• ⽰例 1: 输⼊:address = "1.1.1.1" 输出:"1[.]1[.]1[.]1"

• ⽰例 2: 输⼊:address = "255.100.50.0" 输出:"255[.]100[.]50[.]0"

• 提⽰: 给出的 address 是⼀个有效的 IPv4 地址

算法思路:

1. 定义⼀个空字符串 ans ,并将其初始化为空;

2. 遍历原字符串,当遇到‘.’时,将'[','.',']'依次添加进新字符串;

3. 否则将遍历到的字符直接添加进字符串 ans 。 • 这⾥需要定义另外的指针指向新字符串第⼀位作为返回值,并且要在新字符串最后⼀位添 加'\0',否则可能会导致以下问题:

1. 访问越界:如果程序试图读取没有以空字符结尾的字符串的内容,它可能会读取字符串后⾯的内 存区域,这可能会导致程序访问超出其允许范围的内存,从⽽导致崩溃或其他错误。

2. 错误输出:如果程序试图将没有以空字符结尾的字符串输出到标准输出(如屏幕或⽂件),它可 能会输出字符串后⾯的内存区域,这可能会导致输出错误的结果。

//IP 地址⽆效化
char* defangIPaddr(char* address) {int len = strlen(address);char* ptr = NULL;//定义指针指向字符串⾸位,并且为新字符串分配内存char* ans = ptr = malloc(len + 6 + 1);//利⽤指针遍历字符串,当前字符不为'\0'时进⼊循环while (*address){//判断当前字符是否为'.',是则将"[.]"添加进新字符串if (*address = '.') {*ptr++ = '[';*ptr++ = '.';*ptr++ = ']';}else {*ptr++ = *address;}//将指针指向字符串下⼀位字符address++;}//将字符串最后⼀位赋值为'\0',防⽌访问越界或错误输出*ptr = '\0';//返回指向字符串⾸位的指针return ans;
}

http://www.lryc.cn/news/165866.html

相关文章:

  • nvidia-persistenced 常驻
  • leetcode 42, 58, 14(*)
  • SpringCloud-微服务CAP原则
  • K8S:Yaml文件详解
  • 机器人连续位姿同步插值轨迹规划—对数四元数、b样条曲线、c2连续位姿同步规划
  • 三维模型3DTile格式轻量化压缩的遇到常见问题与处理方法分析
  • 2023-简单点-开启防火墙后,ping显示请求超时;windows共享盘挂在不上
  • 华为Java工程师面试题
  • 大数据Flink(七十四):SQL的滑动窗口(HOP)
  • Hystrix和Sentinel熔断降级设计理念
  • 获取Windows 10中的照片(旧版)下载
  • 【Redis】Redis作为缓存
  • IDEA(2023)解决运行乱码问题
  • 零基础学前端(二)用简单案例去理解 HTML 、CSS 、JavaScript 概念
  • 线性矩阵不等式(LMI)在控制理论中的应用
  • 如何在Python爬虫程序中使用HTTP代理?
  • ARM架构指令集--专用指令
  • 免费IP类api接口:含ip查询、ip应用场景查询、ip代理识别、IP行业查询...
  • Android Studio 中AGP ,Gradle ,JDK,SDK都是什么?
  • 算法通关18关 | 回溯模板如何解决复原IP问题
  • Layui快速入门之第五节 导航
  • 使用分支——Git Checkout
  • 【2023】数据挖掘课程设计:基于TF-IDF的文本分类
  • java.lang.NoSuchMethodError: java.lang.reflect.Field.trySetAccessible()Z
  • 如何使用SQL系列 之 如何在MySQL中使用存储过程
  • 用 Github Codespaces 免费搭建本地开发测试环境
  • PyTorch实战-实现神经网络图像分类基础Tensor最全操作详解(一)
  • 第29章_瑞萨MCU零基础入门系列教程之改进型环形缓冲区
  • 如何搭建一个react项目(详细介绍)
  • ActiveMQ用法