我想将int
转换为char[4]
,其中char[4]
中的每个字节都包含小数值2.所以在以下示例中:
int p = 2999999;
将p
转换为与k
相同的数组,其中k
是通过以下方式构建的:
char k[4];
k[0] = 2;
k[1] = 99;
k[2] = 99;
k[3] = 99;
我怎样才能在C中这样做?
提前致谢!
答案 0 :(得分:5)
对我来说这是一个奇怪的问题但是没问题。这就是我要做的事情:
p
的值,以便以后可以使用(我假设此转换不打算更改其值)。p
的副本,以便能够阅读下两位数字。如此完整的答案是:
#include <stdio.h>
int main()
{
int p = 2999999;
char k[4];
int p_copy = p;
int i;
for(i = 3; i >=0; i--)
{
k[i] = p_copy % 100;
p_copy /= 100;
}
for(i = 0; i < 4; i++)
printf("k[%d]: %d\n",i, k[i]);
return 0;
}
为了理智输出:
gonczor@wiktor-papu:~/tmp$ gcc test.c -o test
gonczor@wiktor-papu:~/tmp$ ./test
k[0]: 2
k[1]: 99
k[2]: 99
k[3]: 99
答案 1 :(得分:1)
for(i = 4; i--; k [i] = p%100,p / = 100);