本文主要是介绍手写方法实现整型例如: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"
三、最后
结果展示:
实现整型转化为字符串的方法有许多,有的代码量多,过程易懂;有的代码量少,却比较复杂,不管怎样能实现过程就是好的方法。最后感谢大家的点赞和收藏!!
这篇关于手写方法实现整型例如:123与字符串例如:“123“相互转化(下篇)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!