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;}
找到每行回车的位置,把回车符换成ASⅡ码为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++;}