gpt4 book ai didi

字符数组和指针字符数组

转载 作者:行者123 更新时间:2023-11-30 20:08:19 26 4
gpt4 key购买 nike

我对此输出有一些问题。另外,我还想要一些关于如何使用 char *str 的示例.

int main() {
char str[5];
scanf_s("%c", &str);
printf("%s", str);
return 0;
}

对于输入“VI”,输出结果很奇怪。

最佳答案

scanf_s 将指针作为其参数。因此,您不需要使用 &str,因为 str 在用于参数表达式等表达式时会隐式转换为指针。您还可以将缓冲区大小作为 scanf_s 中的参数传递。

所以你可以使用

scanf_s("%c", str, 5);

其中 5 是缓冲区大小。传递特定的缓冲区大小将限制您接受超过 scanf 缺少的大小的输入。在 scanf 中,您可能会接受比数组或字符串大小更多的输入(例如声明的字符串是 char str[4],但您可能会接受输入 'Hello'),稍后会因溢出而导致程序崩溃。但是在 scanf_f 中使用特定的缓冲区大小将不允许您获取比缓冲区大小更多的输入。这就是 scanf_s 发挥作用的地方。

关于字符数组和指针字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57314290/

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