#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');
}
}
}
红圈中的意思是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 完全是两码事。它只是定义了一个二维字符数组而已!!
什么叫“tex[i]你可以理解为是一个string”,string不是一个头文件么?