问题描述
- 这个 getline函数 里面lim怎么回事?还有第一次执行s[i]=c;时,i的值是多少
- #include
#define MAXLINE 1000
int getline( char line[]int maxline);
void copy(char to[]char from[]);
main()
{
int len;
int max;
char line[MAXLINE];
char longest[MAXLINE];
max=0;
while((len=getline(lineMAXLINE))>0)
if(len>max)
{
max=len;
copy(longestline);
}
if(max>0)
printf(""%s""longest);
return 0;
}
int getline(char s[]int lim)
{
int ci;
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;
}
void copy(char to[]char from[])
{
int i;
i=0;
while(( to[i]= from[i])!='')
++i;
}
解决方案
第一次执行s[i]=c;
i=0 c是读取的第一个字符
lim表示缓冲区的长度
这些自己调试下就知道了。
解决方案二:
你的意思应该是for循环的语句顺序吧
http://blog.csdn.net/tandesir/article/details/8217082
时间: 2024-09-17 04:01:29