【发布时间】:2020-10-19 19:14:55
【问题描述】:
以下是我用 c 语言编写的代码,我试图将字符串作为输入并将它们存储在二维数组中。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
int i,j,n;
scanf("%d",&n);
char a[n][n];
for(i=0;i<n;i++){
scanf(" %[^\n]",a[i]);
}
for(i=0;i<n;i++){
printf("%s\n",a[i]);
}
}
以下是我的输入
4
1112
1912
1892
第1234章
我的异常输出应该如下所示
1112
1912
1892
第1234章
我得到的输出如下
1112191218921234
191218921234
18921234
第1234章
谁能解释我的代码有什么问题?任何帮助,将不胜感激!谢谢:)
【问题讨论】:
-
提示:长度为4的数组不能容纳长度为4的字符串,nul-terminator的空间不存在。
-
另外,当使用数组作为字符串时要小心,它们需要空终止才能工作。
-
scanf(" %[^\n]",a[i]);比gets()差。
标签: c arrays string multidimensional-array