C Programming Language 1-16

来源:互联网 发布:ubuntu怎么读 编辑:程序博客网 时间:2024/05/01 16:25
/* * tem.c * *  Created on: 2012-7-21 *      Author: Administrator *//* * 打印任意长度的输入行,以及文本中尽可能多的字符   */#include<stdio.h>#include<stdlib.h>#include<memory.h>#define MAXLINE 1000int getline(char line[], int maxline);void copy(char to[], char from[]);int main(){int len; /*当前行长度*///int max; /*到目前为止的最大行*/char line[MAXLINE]; /*当前输入行*/char longest[MAXLINE][MAXLINE];/*保存最长的行*/int i = 0;while( (len = getline (line, MAXLINE)) > 0){copy(longest[i++], line);memset(line,0,sizeof(line)/sizeof(char));}while( i >= 1){printf("%s",longest[i - 1]);i--;}return 0;}/* * 将一行读入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')//每行至少包含一个字符,只包含换行符发行的长度为1{s[i] = c;++i;}s[i] = '\0';return i;}/* * 从from拷贝到to;假定to足够大 */void copy(char to[], char from[]){int i;i = 0;while((to[i] = from[i]) != '\0')++i;}