[英]Input String through 2-D array
我见过其他类似的问题,但没有一个能解决我的问题。
char name[30][15];
int i, n, found=0;
printf("Enter how many names you want to enter:");
scanf("%d", &n);
printf("Enter names of %d friends:", n);
for (i=0; i<n; i++)
scanf("%s", name[i]);
printf("Names are: ");
for (i=0; i<n; i++)
printf("%s\n", name[i]);
如果我运行此代码,它会正常运行,但是当我们定义的数组是二维时,我们如何输入一维数组。 如果我们使用name[i]
是默认定义的列数。
如果我修改此代码,它会显示错误。-
char name[30][15];
int i, n, found=0;
printf("Enter how many names you want to enter:");
scanf("%d", &n);
printf("Enter names of %d friends:", n);
for (i=0; i<n; i++)
scanf("%s", name[i][15]);
printf("Names are: ");
for (i=0; i<n; i++)
printf("%s\n", name[i]);
output 是——
Enter how many names you want to enter:2
Enter names of 2 friends:vyom
Names are:
scanf("%s", name[i][15]);
与scanf("%s", name[i]);
相比是不同的
name[i][15]
的类型是char
, name[i]
的类型是char*
scanf
在读取字符串时需要char*
,这就是在第二种情况下它的行为不符合您预期的原因。
使用scanf("%s", name[i]);
对于读取字符串,最好使用fgets读取多字字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.