C中int数组和char数组的连接

时间:2016-10-11 15:57:21

标签: c

实施例

int a[2] = {1,2};
char b[5] = { 'A', 'B', 'C', 'D' };

是否可以组合两个数组并创建一个2D数组并获得结果:

1A 1B 1C 1D
2A 2B 2C 2D

我尝试创建一个2D数组,如:

char c[2][4]={{'1A','1B','1C','1D'},{'2A','2B','2C','2D'}}

但它给了我错误。

1 个答案:

答案 0 :(得分:0)

'1A'在语法上不正确。单引号用于表示字符文字,只能包含一个字符。

如果你想在运行时将a和b组合成一对数组,这里有一些可能有用的草图:

int a[2] = {1,2};
char b[5] = { 'A', 'B', 'C', 'D' };
char *pairs[2][5];

for(int i = 0; i < 2; i++) 
for(int j = 0; j < 5; j++) {
    pairs[i][j] = (char*)malloc(2 * sizeof(char));
    sprintf(pairs[i][j], "%d%c", a[i], b[j]);
}

如果你只是想初始化一对数组,那么这应该有效:

 char* pairs[2][5] = {{"1A", "1B", "1C", "1D"}, {"2A", "2B", "2C", "2D"}};