目录
一、前言
二、整型转化为字符串
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"
三、最后
结果展示:
实现整型转化为字符串的方法有许多,有的代码量多,过程易懂;有的代码量少,却比较复杂,不管怎样能实现过程就是好的方法。最后感谢大家的点赞和收藏!!