C语言二维字符数组的输入

C语言二维字符数组的输入标题C语言字符数组的输入输出定义一个字符二维数组,输入行数n,与列数m#include<stdio.h>#include<math.h>intmain(){intn,m,i,j;scanf("%d%d",&n,&m);chara[n][m];for(i=0;i<n;i++){scanf("%s",…

标题 C语言字符数组的输入输出

定义一个字符二维数组,输入行数n,与列数m

#include <stdio.h>
#include <math.h>
int main()
{
 int n,m,i,j;
 scanf("%d %d",&n,&m);
 char a[n][m];
 for(i=0;i<n;i++)
 {
 scanf("%s",a[i]);
 }
 for(i=0;i<n;i++)
 {
 printf("%s\n",a[i]);
 }
 return 0;
 }

运行结果:在里插入图片描述

可以看出来第一行把后面的数组元素都输出了,第二行也是
问题在于,printf(“%s”,a[i])输出时,是根据’\0’来进行字符串输出的结束的。而输入时,由于列数只有3,所以第一行的元素实际是XXX,而不是XXX’\0’,所以字符串的输出没有终止。

改正方法:
将列数+1即可,scanf(“%s”,a[i])就能在每一行最后一列加上’\0’.

char a[n][m+1];

还有这里a[i]指的是二维数组每一行第一个元素的地址(我的理解。。)

今天的文章C语言二维字符数组的输入分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/25106.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注