打印最长的输入行

参考《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;

}

实验结果

   

posted @ 2016-02-25 11:42  hopskin1  阅读(485)  评论(0编辑  收藏  举报