65,211
社区成员
发帖
与我相关
我的任务
分享
//书上是对的,因为不需要预留两个位置
//条件语句i <lim-1 && (c=getchar())!=EOF && c!='\n'当是i < lim - 1不符合时,(c=getchar())!=EOF 和下
//面的if语句不会执行,当是c!='\n'不符合时,说明i <= lim - 2时,所以下面的空间也够的,返回值也正确
int getline(char s[],int lim)/*这里s的长度是由相应的实参数组决定的*/
{
int c,i;
for(i=0; i <lim-1 && (c=getchar())!=EOF && c!='\n';++i)/*这里只能是i <lim-1,因为要考虑到存放'\n'*/
s[i] = c;
if(c == '\n')
{
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}