gpt4 book ai didi

c - 尝试终止一个字符数组并在之后打印

转载 作者:太空宇宙 更新时间:2023-11-04 06:57:25 26 4
gpt4 key购买 nike

我正在制作一个数字的 char 数组二进制表示。我想用'\0'终止字符串的结尾。除了预期的垃圾值之外,它还会打印数组 find。

然而,当我尝试终止数组时,特别是垃圾值的索引,它不会打印出我的字符串。

int main(void)
{
char s[8] = {0};
printing_binary(s, 8, 2);

}

void printing_binary(char *s, int length, unsigned n){

for(int i = 0; i < length; i++){
if(1 & (n >> i)){
s[i] = '1';
}
else{
s[i] = '0';
}
}
//Trying to terminate my string
//s[length] = '\0';
printf(s);
}

此代码将打印出类似于 01000000} 的内容。

但是,如果我取消注释 s[length] = '\0',它什么都不打印/程序停止执行。我试过在一切之后打印出“Hello world”。

最佳答案

如果您将结果数组定义为 char s[8],则不得在 8 位置写入任何内容,如 s[length] = 0x0 length==8,因为这超出了数组长度。尝试:

char s[9] = {0};
printing_binary(s, (9-1), 2);

关于c - 尝试终止一个字符数组并在之后打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42542130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com