课本上的例题:读入一组问本行,并把最长的文本行打印出来
情况:编译运行后只能一直输入字符串,多次回车仍无法实现打印功能程序代码:
#include<stdio.h> #define MAXLINE 1000//允许输入行的最大长度 int getline(char line[],int maxline); void copy(char to[],char from[]); //打印最长的输入行 int main() { int max;//目前为止最大行长度 int len;//当前行长度 char line[MAXLINE];//当前的输入行 char longest[MAXLINE];//用于保存最长的行 max=0; while((len=getline(line,MAXLINE))>0) if(len>max) { max=len; copy(longest,line); } if(max>0)//存在这样的行 printf("%s",longest); return 0; } // getline函数:将一行读入到s中,并返回其长度 int getline(char s[],int maxline) { int i,c; for(i=0;i<maxline-1 && (c=getchar())!=EOF && c!='\n';++i) s[i]=c; if(c=='\n') { s[i]=c; ++i; } s[i]='\0'; return i; } // copy函数:将from复制到to;这里假定to足够大 void copy(char to[],char from[]) { int i=0; while((to[i]=from[i])!='\0') ++i; }