gpt4 book ai didi

c - 关于C中的字符串输入

转载 作者:行者123 更新时间:2023-11-30 18:20:17 25 4
gpt4 key购买 nike

我是编程初学者,我编写了以下代码:

#include <stdio.h>

int main(void)
{
char x[] = "",
y[] = "",
z[] = "";

printf("Enter a string: ");
scanf("%s", x);

printf("Enter another string: ");
scanf("%s", y);

printf("Enter one more string: ");
scanf("%s", z);

printf("\n");
printf("x is %s\n", x);
printf("y is %s\n", y);
printf("z is %s\n", z);

getch();
return 0;
}

当我为 x 输入“I”,为 y 输入“am”,为 z 输入“happy”时,结果如下:

x is ppy
y is appy
z is happy

有人知道问题出在哪里吗?谢谢你!

最佳答案

char x[] = "";

相当于:

char x[1] = {'\0'};

如您所见,x 只有一个元素作为空终止符,没有足够的空间来存储任何非空字符串。 yz 相同。

要解决这个问题,定义xyz有足够的空间,最好使用fgets 而不是示例中的 scanf

关于c - 关于C中的字符串输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26249814/

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