合法ip算法实现——输入字符串,输出所有合法的ip

2023-11-15

输入为一串0~9之间的数字字符,不改变字符串中字符的前后顺序,输出所有合法的ip地址。IPV4下用一个32位无符号整数来表示一个ip地址,一般用点分方式来显示,点将ip地址分成4个部分,如“10.137.17.1”。所以要输出所有合法ip,1、将输入的字符串截断成4部分;2、每部分字符串个数大于0小于4;3、每部分字符串的“值”不能大于255。考虑到这三个方面,代码如下。

#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <string>

using namespace std;

int main(){
	string ip;
	cin >> ip;
	int length = ip.size();
	if (length>12||length<4)
	{
		return -1;
	}
    //每个子字符串的长度为1~3
	for ( int i = 1; i < 4; i++){
		for (int j = 1; j < 4; j++){
			for (int k = 1; k < 4; k++){
				for (int m = 1; m < 4; m++){
					if (
                        //四个子字符串长度之和为string ip的长度。
                        (length==i+j+k+m)
                        //每个子字符串的“值”不能超过255
						&&(atoi(ip.substr(0,i).c_str())<=255)
						&&(atoi(ip.substr(i,j).c_str())<=255)
						&&(atoi(ip.substr(i+j,k).c_str())<=255)
						&&(atoi(ip.substr(i+j+k,m).c_str())<=255)
						){
						cout << ip.substr(0, i) << "." << ip.substr(i, j) << "." << ip.substr(i+j, k) << "." << ip.substr(i+j+k, m) << endl;
					}
				}
			}
		}
	}
	system("pause");
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

合法ip算法实现——输入字符串,输出所有合法的ip 的相关文章

  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • 当我使用“control-c”关闭发送对等方的套接字时,为什么接收对等方的套接字不断接收“”

    我是套接字编程的新手 我知道使用 control c 关闭套接字是一个坏习惯 但是为什么在我使用 control c 关闭发送进程后 接收方上的套接字不断接收 在 control c 退出进程后 发送方的套接字不应该关闭吗 谢谢 我知道使用
  • C++ 子字符串返回错误结果

    我有这个字符串 std string date 20121020 我正在做 std cout lt lt Date lt lt date lt lt n std cout lt lt Year lt lt date substr 0 4 l
  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • Newtonsoft JSON PreserveReferences处理自定义等于用法

    我目前在使用 Newtonsoft Json 时遇到一些问题 我想要的很简单 将要序列化的对象与所有属性和子属性进行比较以确保相等 我现在尝试创建自己的 EqualityComparer 但它仅与父对象的属性进行比较 另外 我尝试编写自己的
  • 在 Visual Studio 2008 上设置预调试事件

    我想在 Visual Studio 中开始调试程序之前运行一个任务 我每次调试程序时都需要运行此任务 因此构建后事件还不够好 我查看了设置的 调试 选项卡 但没有这样的选项 有什么办法可以做到这一点吗 你唯一可以尝试的 IMO 就是尝试Co
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • 将 xml 反序列化为类,list<> 出现问题

    我有以下 XML
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • Selenium基础 — 鼠标操作

    1 鼠标事件介绍 前面例子中我们已经学习到可以用click 来模拟鼠标的单击操作 而我们在实际的web产品测试中发现 有关鼠标的操作 不单单只有单击 有时候还要用到右击 双击 拖动等操作 这些操作包含在ActionChains类中 2 Ac
  • 【github】无需拉取项目,在线使用 vscode 进行 code review

    打开任意一个项目 将域名中的github改为github1s 例如 https github com ranmaxli python service https github1s com ranmaxli python service 即可
  • linux module 目录,/sys/module/ 模块信息目录与/proc/modules文件

    在内核模块编译中 会选择编译成模块 或者build in 内核镜像中 其中对内核模块有很好的的说明 这也是linux在嵌入式当中得到广泛应用的充分体现 内核中有很多功能选项 其中有许多使我们不需要的 内核设计成模块的优势所在就在这里 不需要
  • [Python从零到壹] 三十七.图像处理基础篇之图像融合处理和ROI区域绘制

    欢迎大家来到 Python从零到壹 在这里我将分享约200篇Python系列文章 带大家一起去学习和玩耍 看看Python这个有趣的世界 所有文章都将结合案例 代码和作者的经验讲解 真心想把自己近十年的编程经验分享给大家 希望对您有所帮助
  • 常见七大排序算法

    目录 前言 冒泡排序 选择排序 插入排序 希尔排序 shell 快速排序 归并排序 计数排序 前言 在前面我发布了常见的七大排序算法的相关博客 今天这一篇文章是做一个排序算法的小总结 把前面的博客集中分类到一起 方便大家查看 下面就可以去通
  • 树莓派 /bin/sh: 1: /usr/bin/apt-listchanges: not found 返回了一个错误号 (1) --apt

    问题 bin sh 1 usr bin apt listchanges not found E 子进程 usr bin apt listchanges apt test lt 10 返回了一个错误号 1 E Failure running
  • 分布式环境下使用RSA算法实现登录密码的加密传输

    目录 效果 RSA介绍 实现思路 服务端实现 RSAService RSA算法的相关操作 RedisService 公钥和密钥的存储和获取 获取公钥的接口 客户端使用公钥加密 服务端使用私钥解密 效果 RSA介绍 RSA是一种非对称加密算法
  • 免费获取JetBrains一年全家桶

    原文链接 https blog csdn net li5672 article details 110231645 登录Github Education 点击Get benefits 点击Get student benefits 下一步以后
  • CHL同步队列是什么

    CHL同步队列就是AQS内部维护的一个FIFO双向队列 AQS依赖这个双向队列来完成同步状态的管理 如果当前线程获取同步状态失败 AQS将会将当前线程以及等待状态信息构建成一个节点 Node 并将其加入到同步队列中 同时会阻塞当前线程 当同
  • linux 创建 svn 库

    cd data svn mkdir p itvalue chown R windmaker windmaker itvalue svnadmin create data svn itvalue cd itvalue cd conf vim
  • android studio中的CMakeLists.txt,就是如此简单

    android studio中的CMakeLists txt 就是如此简单 user Linvest 目录 1 cmake minimum required VERSION 3 4 1 2 add library native lib SH
  • RabbitMQ简介与安装

    技术对比 MQ 中文是消息队列 MessageQueue 字面来看就是存放消息的队列 也就是事件驱动架构中的Broker 比较常见的MQ实现 ActiveMQ RabbitMQ RocketMQ Kafka 几种常见MQ的对比 Rabbit
  • Android的ADB工具使用

    在SDK的Tools文件夹下包含着Android模拟器操作的重要命令ADB ADB的全称为Android Debug Bridge 就是调试桥的作用 借助这个工具 我们可以管理设备或手机模拟器的状态 还可以进行以下的操作 1 快速更新设备或
  • react-antd中表格的使用(数据的请求,带删除功能的表格)

    前言 最近在学习react antd框架 表格这一块在项目中的使用频率很高 最近在学习这一块的内容 所以记录一下 基础表格请求数据 一般对于表格中的数据我们会进行请求 将请求到的数据存入表格中展示出来 当我们请求较少时可以这样写 const
  • AssetDatabase的方法

    静态函数 描述 AddObjectToAsset 添加对象到资产 AllowAutoRefresh 递减一个内部计数器 Unity使用它来决定是否允许自动的资产数据库刷新行为 AssetPathToGUID 获得资产的GUID ClearL
  • Unity 3D 资源下载

    Unity 3D 资源下载 你也可以在 Unity 3D 中执行 Window Asset Store 菜单命令直接访问 Unity 资源商店 Asset Store Unity 资源商店简介 Unity 资源商店https www ass
  • 为curl 、git、go语言、wget、repo设置代理,解决ubuntu 18.04编译chromium os问题

    为CURL设置proxy 设置代理的方式搜索了一下挺多的 我测试了这两种方式 这两种方式在ubuntu 18 04上可以运行 有两种方法 第一通过声明环境变量 export http proxy socks5h 127 0 0 1 1080
  • a 标签 onclick ( not a function)

    文章目录 说明 点击 download 点击 download1 说明 如图 download 在 body 下方声明 点击 download 则报错 download is not a function 点击 download1 则可以正
  • 【LeetCode刷题】

    菜鸡的LeetCode打怪记录 tips 本文涉及的一切内容仅本人学习使用 如不慎发生侵权行为 请滴滴我删除 谢谢 文章目录 菜鸡的LeetCode打怪记录 题目1480 Running Sum of 1d Array 思路 代码 评分结果
  • 合法ip算法实现——输入字符串,输出所有合法的ip

    输入为一串0 9之间的数字字符 不改变字符串中字符的前后顺序 输出所有合法的ip地址 IPV4下用一个32位无符号整数来表示一个ip地址 一般用点分方式来显示 点将ip地址分成4个部分 如 10 137 17 1 所以要输出所有合法ip 1