《C程序设计语言》1-16
#include <stdio.h>
#define MAXLEN 1000//文本允许最长长度
/*1.程序读入一组文本行,并把最长的文本行打印出来
2.修改main函数,使之可以打印任意长度的输入行的长度,并尽可能多地打印文本
*/
int getline(char str[], int MAXLIN);//输入文本行
void save(char from[], char to[]);//保存当前最长文本行
int main()
{
char str[MAXLEN];//保存当前输入的文本
char longest[MAXLEN];//保存最长文本
int max = 0;//保存最长文本行的长度
//max = 0;
int len = 0;//保存文本行的长度
while((len = getline(str, MAXLEN)) != 0){
printf("%d, %s\n", len, str);
if(len > max){
max = len;
save(str, longest);
}
}
/*打印最长的文本行*/
printf("%s\n", longest);
return 0;
}
//输入文本行
int getline(char str[], int MAXLIN)
{
int len;//文本长度
//int i = 0;
char c;
c = getchar();
for(len = 0; c != '\n' && c != EOF && len < MAXLEN-1; len++){
//len++;
str[len] = c;
c = getchar();
}
if(c == '\n'){
str[len] = c;
len++;
}
str[len] = '\0';
// printf("%d\n", len);
return len;
}
//保存当前最长文本
void save(char from[], char to[])
{
int i = 0;
while(from[i] != '\0'){
to[i] = from[i];
i++;
}
to[i] = '\0';
}