打印最长的输入行
参考《C程序设计语言》
注意输出中光标的位置
对于getline, 由于函数的默认返回值类型为int, 因此这里的int可以省略。
#include<stdio.h> #define MAXLINE 4 //允许的输入行的最大长度 //getline函数: 将一行读入到s中并返回其长度 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]='\0'; return i; } //getline函数: 将from复制到to;这里假定to足够大 void copy(char to[], char from[]){ int i; i=0; while((to[i]=from[i])!='\0') ++i; } int main(){ int len;//当前行长度 int max;//目前为止发现的最长行的长度 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); getchar(); return 0; }
实验结果