如何在C中将数组值分配给另一个数组?

时间:2018-07-14 14:01:28

标签: c arrays printing char

我的代码是:

char array[5];
array[0] = 'F';
array[1] = '5';
array[2] = ' ';
array[3] = 'D';
array[4] = '3';

printf("%s", array);

printf("\n");

char aa[2][2];
char aaa[2];

aa[0][0] = array[0];
aa[0][1] = array[1];
aa[1][0] = array[3];
aa[1][1] = array[4];

aaa[0] = array[0];
aaa[1] = array[1];

printf("aa[0] %s\n", aa[0]);
printf("aa[0][0] %c\n", aa[0][0]);
printf("aa[0][1] %c\n", aa[0][1]);

printf("aa[1] %s\n", aa[1]);
printf("aa[1][0] %c\n", aa[1][0]);
printf("aa[1][1] %c\n", aa[1][1]);
printf("aaa %s", aaa);

输出为:

F5 D3▒▒▒▒
aa[0] F5D3F5 D3▒▒▒▒
aa[0][0] F
aa[0][1] 5
aa[1] D3F5 D3▒▒▒▒
aa[1][0] D
aa[1][1] 3
aaa F5F5D3F5 D3▒▒▒▒

请解释一下,它能做什么?为什么这样做呢?如何修复它,为什么该修复起作用,而该解决方案却不起作用? (...这个“▒”符号实际上是什么?)

谢谢!

1 个答案:

答案 0 :(得分:0)

您的字符串没有以'\0'字符结尾,这就是为什么pritnf将您打印出下一个随机字符

更改代码

char array[5];
array[0] = 'F';
array[1] = '5';
array[2] = ' ';
array[3] = 'D';
array[4] = '3';

char array[6] = "F5 D3\0";

它应该工作