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

手写方法实现整型例如:123与字符串例如:“123“相互转化(下篇)

目录

一、前言

二、整型转化为字符串

1. 初始化变量

2.数字1转字符'1'

3.取出value中的每一项数字

4.将字符放入字符数组中

5.最终代码   

三、最后


一、前言

        本篇文章紧跟上篇文章,本片内容为整型转化为字符串类型。至于我为什么要分两篇文章,主要是考虑这篇内容量的大小,同时还有方便用户阅读的好处。

        这篇文章整体思想和上篇文章类似,所以这篇文章有些内容可能我不会在重复的赘述了。好的,我们废话不多说,开始我们的讲解把!

        上篇文章链接:https://blog.csdn.net/m0_62681656/article/details/139836435?spm=1001.2014.3001.5501

二、整型转化为字符串

       整型转化为字符串的过程要比反过来转化要复杂一点,这是因为整型不是字符串数组,不能直接通过数组下标访问每一项。

        下面我将以int 类型value转换为字符串类型str为例,尽量用最少的代码讲解思路以及方法。

int value { 1234567 };

1. 初始化变量

        我们首先定义一个变量value,然后再定义一个大小为0x20的字符串数组用来存放字符串,

用来相互转化的值。

	int value{ 123456 };char str[0x20]{};
2.数字1转字符'1'

        和上篇文章一样,数字1转字符'1',依然可以通过ASCII表进行转化。

	int a = 1;std::cout << (char)(a + 48); // ‘1’
3.取出value中的每一项数字

        int整型value为123456,取出每一项可以通过value每次 % 10,然后再 / 10 的方式,依次取出6 ,5,4,3,2,1,另外记住这种顺序是倒叙。代码为:

	while (value){std::cout << (char)(value % 10 + 48);  // 依次输出字符'6' '5' '4' '3' '2' '1'value = value / 10;}
4.将字符放入字符数组中

        再我们依次取出字符后,我们需要把这些字符放入字符数组中,同样需要注意顺序。

        这里我们可以定义索引index,大小为字符长度减一,这是因为我们获取的字符是反过来的,所以需要不断地索引值index--,依次放入数组中。

        图解为:

5.最终代码   
	int value{ 123456 };// 负数情况//int value{ -123456 };char str[0x20]{};// index 字符索引值int index{ 0x1F };bool is = value < 0;if (is) value *= -1;while (value){str[--index] = value % 10 + 48;value = value / 10;}if (is) str[--index] = '-';std::cout << &str[index];  // "123456"

三、最后

        结果展示:

        实现整型转化为字符串的方法有许多,有的代码量多,过程易懂;有的代码量少,却比较复杂,不管怎样能实现过程就是好的方法。最后感谢大家的点赞和收藏!!

相关文章:

  • Django REST framework序列化器详解:普通序列化器与模型序列化器的选择与运用
  • Redis高并发高可用
  • 76.最小覆盖子串
  • 【达梦数据库】typeorm+node.js+达梦数据库返回自增列值
  • oracle SCHEDULER
  • Java中setLineWrap(true)和setWrapStyleWord(true)优化TextArea
  • DS18B20温度传感器完整使用介绍(配合51单片机)
  • Android11 动态权限申请
  • windows7虚拟机安装vmtools方法
  • FFmpeg源码:AV_RB32宏定义分析
  • 检测管理信息系统的设计与开发实现:软件功能设计
  • MyBatis系列六: 映射关系多对一
  • pip设置国内源:阿里云、腾讯云、清华大学源
  • leetcode144. 二叉树的前序遍历
  • python学习笔记-10
  • JS 中的深拷贝与浅拷贝
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • AHK 中 = 和 == 等比较运算符的用法
  • Asm.js的简单介绍
  • cookie和session
  • crontab执行失败的多种原因
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • Fabric架构演变之路
  • Facebook AccountKit 接入的坑点
  • GitUp, 你不可错过的秀外慧中的git工具
  • HTTP 简介
  • JavaScript DOM 10 - 滚动
  • Java方法详解
  • js ES6 求数组的交集,并集,还有差集
  • Redis 中的布隆过滤器
  • Redux系列x:源码分析
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • select2 取值 遍历 设置默认值
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 简单实现一个textarea自适应高度
  • 力扣(LeetCode)56
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 那些被忽略的 JavaScript 数组方法细节
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 入手阿里云新服务器的部署NODE
  • 深度学习在携程攻略社区的应用
  • 我的业余项目总结
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • ​ssh免密码登录设置及问题总结
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #NOIP 2014# day.1 T2 联合权值
  • (27)4.8 习题课
  • (42)STM32——LCD显示屏实验笔记
  • (二)测试工具
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (贪心 + 双指针) LeetCode 455. 分发饼干