Chinaunix首页 | 论坛 | 博客
  • 博客访问: 209331
  • 博文数量: 136
  • 博客积分: 2919
  • 博客等级: 少校
  • 技术积分: 1299
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-11 09:08
文章分类

全部博文(136)

文章存档

2013年(1)

2011年(135)

我的朋友

分类: C/C++

2011-03-27 15:09:58

  1. /* k&r(7.7): Line Input and Output
  2.    created on Mar 27, 2011
  3.    */
  4. #include "stdio.h"


  5. #define MAXLINE 1000    /* maximum input line length */

  6.     int max; /* maximum length seen so far */
  7.     char line[MAXLINE]; /* current input line */
  8.     char longest[MAXLINE]; /* longest line saved here */
  9.     int getline1(char *, int);
  10.     void copy(void);

  11. /* print the longest input line; stdardard library version */
  12. main()
  13. {
  14.     int len;
  15.     //extern int max;
  16.     int max;
  17.     extern char longest[];
  18.     extern char line[];
  19.     max = 0;
  20.     while ((len = getline1(line, MAXLINE)) > 0)
  21.      if (len > max) {
  22.          max = len;
  23.          copy();
  24.      }
  25.     if (max > 0) /* there was a line */
  26.      printf("%s", longest);
  27.     return 0;
  28. }

  29. /* getline: read a line into s, return length; implement from std fgets() */
  30. int getline1(char *line, int max)
  31. {
  32.     if(fgets(line, max, stdin) == NULL)
  33.      return 0;
  34.     else
  35.      return strlen(line);
  36. }

  37. /* copy: copy 'from' into 'to'; assume to is big enouth */
  38. void copy(void)
  39. {
  40.     int i;
  41.     extern char line[], longest[];
  42.     i = 0;
  43.     while ((longest[i] = line[i]) != '\0')
  44.      ++i;
  45. }
阅读(634) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~