所以我试图在C中打印出一个字符串,当我打印出来时,我总是在字符串的末尾获得额外的字符.代码:
char binaryNumber[16] = "1111000011110000";
printf("binary integer: %s\n", binaryNumber);
Run Code Online (Sandbox Code Playgroud)
输出:
二进制整数:1111000011110000▒▒▒▒
你能帮我弄清楚为什么会这样吗?我认为这是我的代码中其他一些问题的根源.在我以更复杂的方式创建字符串之前我遇到了这个问题,并且在这种情况下也获得了额外的字符,但它们是不同的.所以我用最基本的方法制作了一个字符串(这里显示的方法),我仍然遇到问题
让编译器确定所需的元素数量
char binaryNumber[] = "1111000011110000";
// same as
// char binaryNumber[17] = "1111000011110000";
Run Code Online (Sandbox Code Playgroud)
它应该是
char binaryNumber[17] = "1111000011110000";
Run Code Online (Sandbox Code Playgroud)
这是因为 C 中的字符串以空字符结尾。因此,如果您不为\0将要添加的隐式提供额外的字符空间,那么您将阅读垃圾