| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1082 人关注过本帖
标题:[求助]请教if(p)*p=0;在函数中的作用
只看楼主 加入收藏
夜里晒太阳
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2006-3-23
收藏
 问题点数:0 回复次数:10 
[求助]请教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;
}

能否具体帮偶解释一下每行所实现的功能.呵呵
搜索更多相关主题的帖子: 函数 
2006-03-24 17:45
夜里晒太阳
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2006-3-23
收藏
得分:0 
???没人会吗???
2006-03-24 22:56
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

找到每行回车的位置,把回车符换成ASⅡ码为0的字符 个人理解


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-25 00:02
夜里晒太阳
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2006-3-23
收藏
得分:0 
我感觉它是想把结束符'\0'赋给*p,这里是0,不知是不是一回事哈.
还有fgets(xx[i],80,fp)是不是把fp所指向的文件里读取前79个字符再加上'\0',如果是那if(p)*p=0;这一步的意义又是什么?
2006-03-25 00:33
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
以下是引用夜里晒太阳在2006-3-25 0:33:00的发言:
我感觉它是想把结束符'\0'赋给*p,这里是0,不知是不是一回事哈.
还有fgets(xx[i],80,fp)是不是把fp所指向的文件里读取前79个字符再加上'\0',如果是那if(p)*p=0;这一步的意义又是什么?

碰到回车符就变成结束符


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-25 00:55
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

这样用不规范


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-25 01:08
夜里晒太阳
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2006-3-23
收藏
得分:0 
以下是引用feng1256在2006-3-25 0:55:00的发言:

碰到回车符就变成结束符

其实偶是想问为什么要加上if(p)*p=0;这一步加不加有什么不同,不是问它实现的功能.

另外真的可以用0代替'\0'吗(先不管规不规范,呵呵代码不是偶写的哈)

2006-03-25 02:07
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
以下是引用夜里晒太阳在2006-3-25 2:07:00的发言:

其实偶是想问为什么要加上if(p)*p=0;这一步加不加有什么不同,不是问它实现的功能.

另外真的可以用0代替'\0'吗(先不管规不规范,呵呵代码不是偶写的哈)


可以代替,(个人感觉还是不要那么写)
if(p)
*p=0; 如果要求长度最大的行,那加这个求此行长度就很方便了,但你这程序里也没有这样的操作
看不出有什么效果


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-25 02:19
夜里晒太阳
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2006-3-23
收藏
得分:0 
[QUOTE]如果要求长度最大的行,那加这个求此行长度就很方便了[/QUOTE]
请问斑竹为什么这样说,可不可以举个实例来看看,偶不是很理解呵呵.
2006-03-25 10:45
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
我的意思是这个
[CODE]

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++;
}

[/CODE]

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-25 13:00
快速回复:[求助]请教if(p)*p=0;在函数中的作用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026324 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved