gpt4 book ai didi

c - 在没有 stange 字符的情况下初始化 C 数组?

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

(我已经知道其他语言,但是我正在准备的这个考试需要知道我以前从未真正研究过的 C。)

编辑:哇,这么多答案...给我几分钟时间阅读所有答案,非常感谢!

这是我的代码

int main(int argc, char *argv[]) {
char search_for[80]; // <----- I think the problem is either here
printf("Search for : ? \n");
fgets(search_for, 80, stdin); // <---- or here
int i;
for (i = 0; i < 80; i++) {
printf("Char i : %c - %p \n", search_for[i], &search_for[i]);
}

return 0;
}

这是输出,最后看到那些奇怪的字符了吗?他们为什么在这里?

Search for : ? 
New
Char i : N - 0x7fff52eb4ba0
Char i : e - 0x7fff52eb4ba1
Char i : w - 0x7fff52eb4ba2
Char i :
- 0x7fff52eb4ba3
Char i : � - 0x7fff52eb4ba4
Char i : � - 0x7fff52eb4ba5
Char i : � - 0x7fff52eb4ba6
Char i : � - 0x7fff52eb4ba7
Char i :
- 0x7fff52eb4ba8
Char i : � - 0x7fff52eb4ba9
Char i : � - 0x7fff52eb4baa
Char i : � - 0x7fff52eb4bab
Char i : - 0x7fff52eb4bac
Char i : � - 0x7fff52eb4bad
Char i : � - 0x7fff52eb4bae
Char i : � - 0x7fff52eb4baf
Char i : @ - 0x7fff52eb4bb0 <---- ??
Char i : ∑ - 0x7fff52eb4bb1 <---- ??
Char i : î - 0x7fff52eb4bb2 <---- ??
Char i : l - 0x7fff52eb4bb3 <---- ??
Char i : ˇ - 0x7fff52eb4bb4 <---- ??

...和其他带有奇怪字符的行..

最佳答案

你的循环应该只打印字符串的长度。因此,循环应该是 for (i = 0; i < strlen(search_for); i++) .

超出字符串长度,由于您的数组未初始化,因此打印堆栈的先前内容,这些内容反射(reflect)为特殊字符。

关于c - 在没有 stange 字符的情况下初始化 C 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15943734/

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