#include<stdio.h>
#define MAXLINE 88
int getline(char s[], int limit );
void copy(char to[] ,char from[]);
main()
{
int len ;
int max ;
int i ;
char line[MAXLINE] ;
char longest[MAXLINE] ;
max = 0 ;
while((len = getline(line , MAXLINE)) > 0){
printf("%d-%s\n",len , line) ;
if(len > max){
max = len ;
copy(longest , line);
}
}
if(max > 0)
printf("%s",longest) ;
return 0 ;
}
int getline(char s[] , int limit)
{
int i,c,j;
j = 0 ;
i = 0 ;
while((c = getchar()) != EOF && c != '\n'){
if(i < limit - 2){
s[j] = c ;
++ j ;
}
++ i ;
}
if( c == '\n'){
s[j] = c ;
++ i ;
++ j ;
} //判断最后一个字符是否为换行符
s[j] = '\0' ;
return i ;
}
void copy(char to[] , char from[])
{
int i = 0 ;
while((to[i] = from[i]) != '\0')
++ i ;
}
PS,这里 i < limit - 2 ,我怎么觉得原getline()函数也应该i < limit - 2 而不是小于 limit - 1