我需要创建一个名为MyInt的类,它通过创建一个int数组来处理任何大小的正数。我正在构建一个构造函数,用于将int(由int支持的任何大小)转换为MyInt。我需要将int转换为char数组,然后逐位读取到int数组中。所以我的问题是,不使用除<iostream>
<iomanip>
和<cstring>
之外的任何库,如何将具有多个数字的int转换为字符数组?
答案 0 :(得分:1)
您无需将char
数组作为中间步骤。可以使用模10操作逐个获得数字(我假设在基数10中)。类似的东西:
convert(int *ar, const int i)
{
int p, tmp;
tmp = i
while (tmp != 0)
{
ar[p] = tmp % 10;
tmp = (tmp - ar[p])/10;
p++;
}
}
答案 1 :(得分:0)
不确定这是否是您想要的,但是:
int myInt = 30;
char *chars = reinterpret_cast<char*>(&myInt);
你可以获得4个单独的字符:
chars[0]; // is the first char
chars[1]; // is the second char
chars[2]; // is the third char, and
chars[3]; // is the fourth/last char
......但我不确定这是不是你想要的。
答案 2 :(得分:0)
采用这种限制进行转换的一种可能方式如下:
function convert:
//find out length of integer (integer division works well)
//make a char array of a big enough size (including the \0 if you need to print it)
//use division and modulus to fill in the array one character at a time
//if you want readable characters, don't forget to adjust for them
//don't forget to set the null character if you need it
我希望我没有误解你的问题,但这对我有用,给我一个可打印的数组,读取与整数本身相同。