gpt4 book ai didi

c - char 数组的第一个元素自动初始化为 null。strings、scanf、printf

转载 作者:行者123 更新时间:2023-11-30 15:29:31 25 4
gpt4 key购买 nike

输入:9符号

printf("Input N value\n");
scanf("%d",&N);
char X[N];
int i=0,N=0;
for (i=0;i<N-1;i++)
{
scanf("%c",&X[i]);
}
X[N-1]='\0';


for (i=0;i<N-1;i++)
{
printf("%c",X[i]);
}

预期输出:符号输出:符号

为什么会这样?

最佳答案

当您使用第一个 scanf 调用读取长度时,您会在输入缓冲区中留下换行符。

在第二次 scanf 调用时,读取的第一个字符是换行符,然后是其余字符。在第二个 scanf 字符串参数中的 %c 之前添加空格将消耗所有剩余的换行符。

scanf(" %c",&X[i]);

在打印字符串之前,也不要以 null 终止字符串。

X[N-1] = '\0' ;

关于c - char 数组的第一个元素自动初始化为 null。strings、scanf、printf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26216667/

25 4 0
文章推荐: javascript - Vue.js