文章目录
- 每日一言
- 题目
- 解题思路
- 代码
- 结语
每日一言
台阶是一层一层筑起的,目前的现实是未来理想的基础。只想将来,不从近处现实着手,就没有基础,就会流于幻想。——徐特立
题目
题目链接: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 地址
解题思路
首先要知道,一个IPv4中只有3个 “ . ”
根据题意,要把每个 " . “替换成” [.] ",相比较原来的字符串,在创建新的字符串时,还需要给新的字符串多分配 2*3 = 6的空间
分配好空间了,接下来就好办了,遍历整个字符串,
如果当前字符不是“ . ”,则直接放入新的字符串中
如果当前字符是“ . ”,则按顺序依次放入“ [ ”、“ . ”、“ ] ”
代码
char * defangIPaddr(char * address){int len = strlen(address);//注意strlen函数计算长度时没有把\0数进去char* arr = (char*)malloc(len+6+1);//在 len+6+1 中,“1” 是为字符'\0'开辟空间char* p1 = arr;//p1 的作用是记录新数组的最后一位while(*address){if('.' == *address){*p1++ = '['; *p1++ = '.'; *p1++ = ']'; }else{*p1++ = *address;}address++;}*p1 = '\0';//别忘了在字符串最后加上结束标志return arr;
}
结语
请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!
都看到这里啦!真棒(*^▽^*)
可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家
编程小白写作,如有纰漏或错误,欢迎指正