【发布时间】:2020-04-03 11:11:08
【问题描述】:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
char str[4];
scanf("%s",str);
printf("%s",str);
}
输入扫描 输出扫描
这里我声明了一个由 4 个字符组成的数组。我使用了用于字符串的“%s”。当 NULL 字符应使用一个空格时,我无法理解如何输入 4 个 char 元素并获得正确答案。输入最多只能使用 3 个元素。
【问题讨论】:
-
这是未定义的行为。你很幸运。
-
见stackoverflow.com/a/12019987/12139819。长话短说:它是 UB,避免使用
scanf,使用fgets
标签: c