我有两个变量:
int a;
char b[10];
我想将两个数据组合/追加到一个数组中:
temp[50];
我该怎么做?
答案 0 :(得分:2)
您没有向我们提供有关temp类型或您想要这样做的充分信息,通常组合类型没有多大意义。但是,如果temp是一个char数组,并且你想连接它们以获得某种有用的输出,你可以使用sprintf:
int a = 10;
char b[10] = "apple";
char temp[50];
sprintf(temp, "%d %s", a, b);
/* 10 apple */
puts(temp);
sprintf中的 %d
用于表示十进制整数,而%s
用于表示以null结尾的字符串。
答案 1 :(得分:0)
你的temp [50]的数据类型是什么?如果它是一个char temp [50],那么你可以将'int a'变成char 使用来自同一社区的下面建议,stackoverflow,由JaredPar
char dig =(char)(((int)'0')+ i); [参考] https://stackoverflow.com/questions/1114741/convert-int-to-char-c
答案 2 :(得分:0)
在同一个数组中混合不同的数据类型是没有意义的 - 我建议不要这样做。如果你真的必须以某种方式组合它们,你可以使用结构。
另一方面,从技术上讲,它是可能的,因为int足够大以包含char - 所以你可以创建数组temp []作为int类型,并用其他数组的int或chars填充它..
答案 3 :(得分:0)
你的意思是:
char temp[50] = {a, b[0], b[1], ...};
如果是,那就是:
char temp[50];
temp[0] = a;
memcpy(&temp[1], b, sizeof(char) * 10);
答案 4 :(得分:0)
struct stuff {
int a;
char b[10];
}
struct stuff temp[50]; // an array of 50 structs with 2 members each.