C++ 类型转换 int, hex,char* float, string, wstring

日常的开发中经常会用到类型的相互转换,这里记录一下;

1, int转hex

std::string IntToHex(int value) {stringstream ioss;ioss << std::hex << value;string temp;ioss >> temp;return temp;}

2, int转hex 设置宽度

std::string intToHexString(int input, int width) const
{std::stringstream convert;convert << std::hex  << std::setfill('0');convert << std::setw(width) << input;return convert.str();
}

3,int to string 可设置宽度

// default width = 1
std::string intToString(int input, int width = 1) const;std::string intToString(int input, int width) const
{std::stringstream convert;convert << std::dec << std::setfill('0');convert << std::setw(width) << input;return convert.str();
}

4.string to int

int stringToInt(std::string input) const
{int retVal = 0;std::stringstream convert(input);convert << std::hex;convert >> retVal;return retVal;
}

5. string转wstring

std::wstring s2ws(const std::string& s) {setlocale(LC_ALL, "chs");size_t _dsize = s.size() + 1;wchar_t* _dest = new wchar_t[_dsize];wmemset(_dest, 0, _dsize);const char* _source = s.c_str();mbstowcs(_dest, _source, _dsize);std::wstring result = _dest;delete[] _dest;setlocale(LC_ALL, "C");return result;
}

6. wstring转string

std::string ws2s(const std::wstring& ws) {std::string cur_locale = setlocale(LC_ALL, nullptr);setlocale(LC_ALL, "chs");size_t _dsize = 2 * ws.size() + 1;char* _dest = new char[_dsize];memset(_dest, 0, _dsize);const wchar_t* _source = ws.c_str();wcstombs(_dest, _source, _dsize);std::string result = _dest;delete[] _dest;setlocale(LC_ALL, cur_locale.c_str());return result;
}

7. char*转hex

void strtohex(const char* str, int slen, char* buff, int len) {assert(slen == len * 2);for (int i = 0; i < len; i++) {char strhex[5] = "0x00";strhex[2] = str[i * 2];strhex[3] = str[i * 2 + 1];buff[i] = (byte)strtol(strhex, NULL, 16);}}

8. unsigned转hex

std::string UintToHex(unsigned int value) {stringstream ioss;ioss << std::hex << value;string temp;ioss >> temp;return temp;}

9. float转char*

char * float2str(float val, int precision, char *buf) {char *cur, *end;sprintf(buf, "%.6f", val);if (precision < 6) {cur = buf + strlen(buf) - 1;end = cur - 6 + precision;while ((cur > end) && (*cur == '0')) {*cur = '\0';cur--;}}return buf;}

10. string转unsigned int

unsigned int string2Uint(string str) {unsigned int result(0);//最大可表示值为4294967296(=2‘32-1)//从字符串首位读取到末位(下标由0到str.size() - 1)for (int i = str.size() - 1; i >= 0; i--){unsigned int temp(0), k = str.size() - i - 1;//判断是否为数字if (isdigit(str[i])){//求出数字与零相对位置temp = str[i] - '0';while (k--)temp *= 10;result += temp;} else//exit(-1);break;}return result;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/18965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕设 深度学习猫狗分类 - python opencv cnn

文章目录 0 前言1 课题背景2 使用CNN进行猫狗分类3 数据集处理4 神经网络的编写5 Tensorflow计算图的构建6 模型的训练和测试7 预测效果8 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往…

Not allowed to load local resource: file:///D:/xxx.jpg

问题&#xff1a; Not allowed to load local resource: file:///D:/xxx.jpg 出现以上情况的原因是浏览器不允许访问本地路径&#xff0c;所以你需要配置一个虚拟的路径代替本地的路径。 解决方法&#xff1a; 思路&#xff1a;通过tomcat代理&#xff0c;在tomcat里写一个虚…

mockery 模拟

composer地址&#xff1a;mockery/mockery - Packagist github地址&#xff1a;地址 文档地址&#xff1a;Mockery — Mockery Docs 1.0-alpha documentation 根据文档介绍&#xff0c;mockery是php mock对象框架。根据js的mock框架的作用&#xff0c;估计mockery也是通过创…

RocketMQ 在业务消息场景的优势详解

作者&#xff1a;隆基 01 消息场景 RocketMQ 5.0 是消息事件流一体的实时数据处理平台&#xff0c;是业务消息领域的事实标准&#xff0c;很多互联网公司在业务消息场景会使用 RocketMQ。 我们反复提到的“消息、业务消息”&#xff0c;指的是分布式应用解耦&#xff0c;是 R…

DSP开发:串口sci的发送与接收实现

DSP开发&#xff1a;串口sci的发送与接收实现 文章目录 DSP开发&#xff1a;串口sci的发送与接收实现串口配置串口SCI初始化详细分析串口SCI使用 串口配置 /*--------------------------------------------scia----------------------------*/ /*----------------------------…

七种遍历Map的方法

七种遍历Map的方法 import java.util.HashMap; import java.util.Iterator; import java.util.Map;public class Wan {public static void main(String[] args) {Map<String,String> dataMap new HashMap<>();dataMap.put("A","Abb");dataMap…

Linux系统CPU和磁盘性能进程分析工具pidstat

一、pidstat对CPU的分析 Linux 上的pidstat(1)工具按进程或线程打印CPU 用量&#xff0c;包括用户态和系统态时间的分解。默认情况下&#xff0c;仅循环输出活动进程的信息。例如&#xff1a; 这个例子捕捉到了系统备份&#xff0c;包含了tar(1)命令&#xff0c;从文件系统读取…

攻防世界zorropub题解与subprocess模块

目录 题目分析&#xff1a; subprocess模块&#xff1a; subprocess.Popen()函数&#xff1a; subprocess.run()函数&#xff1a; 题目脚本&#xff1a; 在攻防世界做到一个题目感觉还挺有意思&#xff0c;记录一下 这个放链接也只是攻防世界的页面&#xff0c;所以直接说…

AI技术快讯:清华开源ChatGLM2双语对话语言模型

ChatGLM2-6B是一个开源项目&#xff0c;提供了ChatGLM2-6B模型的代码和资源。根据提供的搜索结果&#xff0c;以下是对该项目的介绍&#xff1a; 论文&#xff1a;https://arxiv.org/pdf/2103.10360.pdf ChatGLM2-6B是一个开源的双语对话语言模型&#xff0c;是ChatGLM-6B模…

0802|IO进程线程day5 作业(打印时钟在终端上,若终端输入quit,结束时钟)

作业1&#xff1a;守护进程 守护进程的创建&#xff08;5步&#xff09;&#xff1a; 创建孤儿进程&#xff1a;所有工作都在子进程中执行&#xff0c;从形式上脱离终端控制。 fork(), 退出父进程 创建新的会话组&#xff1a;使子进程完全独立出来&#xff0c;防止兄弟进程对其…

Python集成开发环境IDE:Spyder自动换行、函数列表outline、代码折叠

Spyder是一个用PythonQt编写的集成开发环境&#xff0c;包含许多有用的函数和工具。以下是一些常用功能&#xff1a; 变量浏览器&#xff1a;可以动态交互并修改变量&#xff0c;可以进行绘制直方图、时间序列&#xff0c;编辑日期框架或Numpy数组&#xff0c;对集合进行排序&…

【python】两数之和 python实现(详细讲解)

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

【Java可执行命令】(十三)策略工具policytool:界面化创建、编辑和管理策略文件中的权限和配置 ~

Java可执行命令之policytool 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 使用方式3.2 使用技巧3.3 注意事项 4️⃣ 应用场景&#x1f33e; 总结 1️⃣ 概念 在Java平台上&#xff0c;安全性是至关重要的。为了提供细粒度的安全管理机制&#xff0c;Java引入了policytool命令。p…

cmake使用笔记

vim CMakeLists.txt mkdir build cd build cmake ..创建 CMakeLists.txt&#xff0c;添加内容 cmake_minimum_required(VERSION 3.26) #工程名称 project(hello) #宏定义 add_definitions(-D宏名称) #头文件路径 include_directories(${PROJECT_SOURCE_DIR}/inc) #搜索源文件…

Python爬虫教程篇+图形化整理数据(数学建模可用)

一、首先我们先看要求 1.写一个爬虫程序 2、爬取目标网站数据&#xff0c;关键项不能少于5项。 3、存储数据到数据库&#xff0c;可以进行增删改查操作。 4、扩展&#xff1a;将库中数据进行可视化展示。 二、操作步骤&#xff1a; 首先我们根据要求找到一个适合自己的网…

Socket本质、实战演示两个进程建立TCP连接通信的过程

文章目录 Socket是什么引入面试题, 使你更深刻的理解四元组 Socket网络通信大体流程实战演示TCP连接建立过程需要用到的linux 查看网络的一些命令测试的程序一些准备工作启动服务端, 并没有调用accept启动客户端开启服务accept Socket是什么 通俗来说,Socket是套接字,是一种编…

InnoDB引擎底层逻辑讲解——架构之磁盘架构

1. System Tablespaces区域 系统表空间是change buffer&#xff08;更改缓冲区&#xff09;的存放区域&#xff0c;这是在8.0之后重新规划的&#xff0c;在5.x版本的时候&#xff0c;系统表空间还会存放innodb的数据字典undolog日志等信息&#xff0c;在8.0之后主要主要存放更…

常用椭圆曲线介绍

chat-gpt生成&#xff0c;对应python的miracl/core/python库 ED系列 一、ED25519 ED25519使用的椭圆曲线是Curve25519&#xff0c;它是一种高效且安全的椭圆曲线&#xff0c;由Daniel J. Bernstein等人设计。ED25519的密钥长度为256位&#xff0c;提供了128位的安全性。ED25…

Gitlab CI/CD笔记-第一天-GitOps和以前的和jenkins的集成的区别

一、GitOps-CI/CD的流程图 简单解释&#xff1a; 1.提交代码 2.编译构建 3.测试 4.部署 二、gitlab的实现 1、Runer 1.这个就是jenkins里的worker-slave的角色&#xff0c; 2.git-lab server 下发任务&#xff0c;Runner执行。 3.这个R…

关于样本方差为什么除以 n-1

今天上午集训摸鱼看到同学给我发的这个问题感觉挺有意思的 感性理解 这一部分的内容仅代表本蒟蒻没看严谨证明之前的个人见解&#xff0c;如果您想看严谨的证明&#xff0c;请翻到下一部分 还是先把图放上来罢省的有人不知道讲的什么东西 呃我知道这是生物竞赛的东西&#…