在char数组中分配整数值

时间:2015-01-19 11:39:54

标签: c

我需要一个整数值存储在char数组中。

int i; 
char example[5];

for(i = 0; i < 5; i++) {
    example[i] = i + 1;
}

显然这不起作用。我该怎么做?

3 个答案:

答案 0 :(得分:1)

你可以这样使用。

int i; 
char example[5];
for(i=0; i<5; i++){
example[i]=i+1+'0';
}

它适用于单个整数值0到9.需要'0'在char数组中 它将存储ascii值。所以我们需要将ascii值加零以得到实数的整数值。

或者正如Iharob所说,使用char数组。

答案 1 :(得分:0)

int是一种太宽的类型,无法将其存储在char中,因此如果您更改计数器的类型会更好

char i; 
char example[5];
for (i = 0; i < 5; i++) {
    example[i] = i + 1;
}

您必须知道for循环的迭代次数不能超过CHAR_MAX

如果您想要存储值以使example成为字符串,那么您应该添加ascii '0'以使值有效ascii字符,并且您应该添加1个额外的'\0'数组末尾的字符使其成为字符串

char i; 
char example[6];
for (i = 1 ; i < 6; i++) {
    example[i] = i + '0';
}
example[5] = '\0';

这将生成字符串

12345

答案 2 :(得分:0)

添加此

example[i]=i+1+'0';

char example[5] //no terminator here
char example[5]; 
               ^^^