Exercise 1.16

接下来几周,都贴上The C programming language的习题解答~用来监督自己认真完成每一个题目

 

#include <stdio.h> #define MAXLEN 20 void copy(char*,char*); int getline(char*,int); void main() { char longest[MAXLEN]; char line[MAXLEN]; char tmp[MAXLEN]; int max,len,cur; int isFirst; max=len=cur=0; isFirst=1; while((len=getline(tmp,MAXLEN)) > 1) { if(isFirst) { copy(line,tmp); isFirst=0; } cur+=len; if(tmp[len-1]=='/n') { if(cur>max) { max=cur; copy(longest,line); } isFirst=1; cur=0; } } longest[max-1]='/0'; printf("%d : %s",max,longest); getchar(); } int getline(char *line,int lim) { int i,c; for(i=0;i<lim-1 && (c=getchar())!=EOF && c!='/n';i++) { line[i]=c; } if(c=='/n') { line[i++]=c; } line[i]='/0'; return i; } void copy(char *to,char *from) { while((*(to++)=*(from++))!='/0'); }  

你可能感兴趣的:(c)