c - C输入带空格的字符串

标签 c string multidimensional-array scanf

我希望我的程序提示用户他们想写多少个句子,然后输入这些句子。但是,当我尝试输入句子时,我不断出错。我尝试使用几种不同的功能,但它们都给出了某种错误。例如,现在我正在尝试使用 fgets(),在我输入第一句话后,它给我一个段错误。谁能告诉我输入带空格的字符串的最佳方式是什么以及如何解决我的问题?

int n;
char str[n][80];

printf("Enter number of lines: ");
scanf("%d", &n);

printf("Enter a sentecne: ");
for(int i = 0; i < n; i++){
    fgets(str[i], 80, stdin);
    printf("%s", str[i]);
}

最佳答案

在初始化n 之前定义数组str。这意味着 n 将有一个不确定值(看起来是随机的)。

n 的输入移动到定义str 之前的

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

相关文章:

javascript - 如何循环多维数组 (3D)?

java - 二维阵列打印在一列错误

c - 为什么函数存在于.o文件中,但不存在于.so文件中?

c - 使用特定版本的库

c - 按文件大小动态分配的数组太大

java - 将嵌套列表转换为二维数组

c - 卡在循环中,应该在文件结束后停止 - C

java - 从字符串数组中删除一个字符

删除 R 中所有变量的部分变量名

c - 缩短 C 字符串以从第一次出现的内容中排除更多字符