c语言 - K&R 中的 getline 函数定义



下面是第29页K&R中的getline实现,

# define MAXLINE 1000
int getLine(char s[], int lim)
{
int c ,i ;
for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c!= 'n'; ++i)
s[i] = c;
if(c == 'n'){
s[i] = c;
++i;
}
s[i] = '';
return i;

}

我不明白为什么我们要做" I

函数将构建一个字符串(存储在由参数char s[]指定的数组中),该字符串是一个以0结束的字符''结尾的字符序列。

因此,数组中的一个元素保留给在退出

函数之前附加到字符数组中的结束零字符
s[i] = '';

例如,如果变量lim等于5,那么在索引[0, 3]的范围内,您可以在数组中输入不超过4个字符。在这种情况下(如果所有的lim-1字符都将被填充),在数组的最后一个元素中,将在位置4处写入终止零字符''

相关内容

  • 没有找到相关文章

最新更新