下面是第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
处写入终止零字符' '
。