c语言二维数组的运用

#include<stdio.h>#defineMAX100#defineLEN80main(){chartext[MAX][LEN];registerinti,j,t;... #include<stdio.h>
#define MAX 100
#define LEN 80
main()
{
char text[MAX][LEN];
register int i,j,t;
for(t=0;t<MAX;t++)
{
printf("%d:",t);
【gets(text[t]);】这里是怎么回事?不是二维数组么?懂得解释一下;
if(!text[t][0])
break;
}
for(i=0;i<t;i++)
{
for(j=0;text[i][j];j++)
{
putchar(text[i][j]);
putchar('\n');
}
}
}
展开
 我来答
qzhao_1
2018-03-22 · TA获得超过2.4万个赞
知道大有可为答主
回答量:2.4万
采纳率:76%
帮助的人:4337万
展开全部
#include<stdio.h>
#define MAX 100
#define LEN 80
main()
{
char text[MAX][LEN];
register int i,j,t;
for(t=0;t<MAX;t++)
{
printf("%d:",t);
gets(text[t]); /* 由于 text 定义为二维数组, 所以该循环体的作用就是:循环从键盘输入 MAX-1 次字符串,并存入 text[t] 中,然后 t 依次递增 1 */
if(!text[t][0]) /* 该语句用于判断字符串是否到结尾?,如果到结尾了,即:text[t][0] = '\0',表示只输入了一个回车符,则退出循环 */
break;
}
for(i=0;i<t;i++)
{
for(j=0;text[i][j];j++)
{
putchar(text[i][j]); /* 显示 text 二维数组中的字符 */
putchar('\n');
}
}
}
追问

红圈中的意思是text[t][0]不是‘\0’就执行break么

追答
但是表达式:if(!text[t][0]) 的意思是:假设 text[t][0] = '\0',则表达式可以写为:
if( ! 0 )
break ;
!0 的逻辑真值是 1,所以就又进一步变成了:
if( 1 )
break ;
string.h 是关于各种字符串头文件,例如:strcpy()(字符串拷贝)、strcmp()(字符串比较)、strstr( )(搜索子串) 函数等定义都在 string.h 头文件中定义。
而你说的 char text[MAX][LEN] 和 string.h 和 字符串头文件 string.h 完全是两码事。它只是定义了一个二维字符数组而已!!
匿名用户
2018-03-22
展开全部
char text[][] 是字符数组,text[i][j]是一个字符,tex[i]你可以理解为是一个string
追问
什么叫“tex[i]你可以理解为是一个string”,string不是一个头文件么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式