gpt4 book ai didi

c - 为什么C会输出这些克拉?

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

我正在编写一个十六进制到 base64 的编码器作为练习,因为我是 C 语言的新手。不管为什么代码没有按照我想要的方式工作,为什么我得到这些克拉字母组合在我的输出旁边?

const char * hex_to_base64(const char * s) {
int i;
for(i = 0; i < strlen(s)/3; i = i + 3) {
char str[3];
str[0] = s[i];
str[1] = s[i+1];
str[2] = s[i+2];
printf("%s\n", str);
}
return NULL;
}

int main() {
const char * x = "4453def6d206b696c6c696e6720796f757220627261696e206c696b652061222226f789436f6e6f5573206dabb7368726fa4b2";
hex_to_base64(x);
return 0;
}

我得到了这个输出:

445
3de^C
f6d^F
206
b69 ^L
6c6^O
c69^R
6e6^U
720^X
796^[
f75^^
722!

有人能解释一下为什么我在 printf 结尾处得到克拉字母组合吗?

最佳答案

您将一个非零终止的字符串传递给 printf()。变化:

char str[3];

char str[4];
str[3] = '\0';

更好的是,将声明和零赋值移到循环之外。

关于c - 为什么C会输出这些克拉?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17057330/

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