附加数组

时间:2011-05-31 02:14:25

标签: c arrays

我有两个变量:

int a;
char b[10];

我想将两个数据组合/追加到一个数组中:

temp[50];

我该怎么做?

5 个答案:

答案 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.