Chinaunix首页 | 论坛 | 博客
  • 博客访问: 427502
  • 博文数量: 71
  • 博客积分: 26
  • 博客等级: 民兵
  • 技术积分: 1246
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-23 14:46
个人简介

linux --- 一切皆文件

文章分类

全部博文(71)

文章存档

2021年(1)

2019年(2)

2018年(4)

2017年(7)

2016年(11)

2015年(1)

2014年(2)

2013年(33)

2012年(10)

分类: C/C++

2013-05-16 21:25:45

 找出文件中,最长的那行并且把他打印出来。
需要使用到的知识,因为最后打印的是字符串,字符串是以 ‘\0’结尾的。

#include

#define MAXLEN 1000

int mygetline(char line[],int maxlen);
void copy(char from[],char to[]);

int main(void)
{
    int c,len,max;
    char line[MAXLEN];
    char longest[MAXLEN];

    max = 0;
    while((len = mygetline(line,MAXLEN)) > 0){
        if(len > max){
            max = len;
            copy(line,longest);
        }
    } 

    printf("the longest line is : \n %s \n",longest);
   
    return 0;
}

int mygetline(char line[],int maxlen)
{
    int i,c;
    for(i = 0; i < maxlen -2 && (c = getchar()) != EOF && c != '\n';i ++){
        line[i] = c;
    }
    if(c == '\n'){
        line[i] = '\n';
        i ++;
    }
    line[i] = '\0';
    
    return i;
}

void copy(char from[],char to[])
{
    int i = 0;
    while((to[i] = from[i]) != '\0'){
        i ++;
    }
}    

注意函数传参和防止字符串越界~~



阅读(669) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~