[求助]请教if(p)*p=0;在函数中的作用
int ReadDat(void)
{
FILE *fp;
int i=0;
unsigned char *p;
if((fp=fopen("eng.in","r"))==NULL) return 1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],'\n');
if(p)*p=0;
i++;
}
maxline=i;
fclose(fp);
return 0;
}
int ReadDat(void)
{
FILE *fp;
int i=0;
unsigned char *p;
if((fp=fopen("eng.in","r"))==NULL) return 1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],'\n');
if(p)*p=0;
i++;
}
maxline=i;
fclose(fp);
return 0;
}
碰到回车符就变成结束符
碰到回车符就变成结束符
其实偶是想问为什么要加上if(p)*p=0;这一步加不加有什么不同,不是问它实现的功能.
另外真的可以用0代替'\0'吗(先不管规不规范,呵呵代码不是偶写的哈)
其实偶是想问为什么要加上if(p)*p=0;这一步加不加有什么不同,不是问它实现的功能.
另外真的可以用0代替'\0'吗(先不管规不规范,呵呵代码不是偶写的哈)
可以代替,(个人感觉还是不要那么写)
if(p)
*p=0; 如果要求长度最大的行,那加这个求此行长度就很方便了,但你这程序里也没有这样的操作
看不出有什么效果
while(fgets(xx[i],80,fp)!=NULL)
{
p=strchr(xx[i],'\n');
if(p)
*p=0;
if( strlen(xx[i])>sum) /* sum要初始化为0*/
{
sum=strlen(xx[i]);
maxline=i;
}
i++;
}