繁体   English   中英

通过二维数组输入字符串

[英]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]的类型是charname[i]的类型是char*

scanf在读取字符串时需要char* ,这就是在第二种情况下它的行为不符合您预期的原因。

使用scanf("%s", name[i]); 对于读取字符串,最好使用fgets读取多字字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM