追加数组
struct stuff {
int a;
char b[10];
}
struct stuff temp[50]; // an array of 50 structs with 2 members each.
什么是你的温度[50]的数据类型?如果它是一个char temp [50],那么你可以把你的'int a'变成char 使用以下建议从同一个社区,*,由JaredPar
char dig =(char)((( INT) '0')+ I); [ref] https://*.com/questions/1114741/convert-int-to-char-c
嗯是的..并丢失3个字节的数据为每个int .. – 2011-05-31 02:19:36
@ filip-fku,如果是这样的话,你总是可以将你的int分成4个字符(基本上占用char数组中的4个字符槽)。就像我说的那样,你的temp [50]的数据类型是什么? int或字符或你定义(结构)可以容纳一个'int'和一个'字符',然后有'结构'数组? – 2011-05-31 02:22:26
确切地说,但是这不是完全转换为字符的int是它吗?这更像是使用int来携带字符。这可能是有用的,我想这一切都取决于我们没有的这个问题的背景。 – 2011-05-31 02:31:08
在同一个数组中混合不同的数据类型没有意义 - 我建议不要这样做。如果你真的必须以某种方式组合它们,你可以使用一个结构。
另一方面,从技术上讲,它可能是因为一个int足够大以容纳一个char - 所以你可以创建一个int类型的数组temp,然后用int或chars填充array ..
抱歉,我是初学者。你能告诉我我是如何在一个数组中填充不同类型的数据吗?谢谢 – kiran 2011-05-31 02:32:28
我想说的是,你通常不应该那样做。你能告诉我们为什么你想这样做,你想达到什么目的? – 2011-05-31 02:35:38
您没有给我们足够的有关温度类型或为什么要这么做的信息,通常它没有多大意义来组合类型。然而,如果温度是一个字符数组,你想连接两者的某种有用的输出,你可以用sprintf:
int a = 10;
char b[10] = "apple";
char temp[50];
sprintf(temp, "%d %s", a, b);
/* 10 apple */
puts(temp);
%d
在sprintf的用于表示一个十进制整数,而%s
是使用中表示以空字符结尾的字符串。
你的意思是:
char temp[50] = {a, b[0], b[1], ...};
如果是这样,它是:
char temp[50];
temp[0] = a;
memcpy(&temp[1], b, sizeof(char) * 10);
我们需要更多的细节 – rerun 2011-05-31 02:17:17
你所说的附加在一个阵列中的意思是两个数据?什么是温度类型[50]?你为什么想这样做? – Wiz 2011-05-31 02:21:08