爱问知识人 爱问教育 医院库

在C语言中,这个语句怎么理解哦?

首页

在C语言中,这个语句怎么理解哦?

定义的XX数组是一个二维的数组
while(fgets(xx[i],80,fp)!=null)
{
p=strchr(xx[i],'\n');
if(p) *p=0;
i++;
}

p=strchr(xx[i],'\n');
if(p) *p=0;这两条语句是什么意思哦?

p=strchr(xx[i],'\n');这个意思就是在数组xx[i]中找第一次出现'\n'的位置,并把地址赋值给指针P,那么if(p) *p=0;是什么意思呢?

提交回答

全部答案

    2007-03-16 22:55:43
  • 一维字符数组可以看成是字符串,所以xx这个二维数组的每一行也可以看成是一个字符串。
    字符串的结束符是'\0',比如用puts输出的话即使字符数组第一次出现'\0'的后面也有被赋值,但仅仅输出第一个'\0'前的部分。
    *p=0;
    跟
    *p='\0';
    效果一样。
    所以这两句的意思是遇到回车认为xx[i]这个字符串结束,给原本'\n'的位置赋值成字符串结束符。
    这样xx的每一行就对应了文件里的行是对应的了。
    不过是在文件里的每行长度保证小于80个字符的条件下,否则超过80字符的行将会用xx的多行的形式保存。

    1***

    2007-03-16 22:55:43

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 172-191
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):