思路如下:
while(还有未处理的行)
if(该行比已处理的最长行还要长)
保存改行
保存该行的长度
打印最长的行
这里使用了两个自己编写的子函数getline和copy1函数,getline()函数用来读取文本行中的每一行并返回长度,copy1()函数用来把目前读取的最长行保存到指定的longest字符数组中。
程序如下:
#include<stdio.h>
#define MAXLINE 1000//能够存放的最大行长度
int getline(char line[],int maxline);//getline()函数声明
void copy1(char t0[],char from[]);//copy1()函数声明
main()
{
int max=0,len;
char line[MAXLINE],longest[MAXLINE];
while((len=getline(line,MAXLINE))>0)
if(len>max)//测试输入的字符行长度是否大于原来已经输入过的行长度
{
max=len;
copy1(longest,line);//将具有最长字符长度的行保存到longest字符数组中
}
if(max>0)
printf("输出最长的文本行是:%s",longest);
}
int getline(char s[],int maxline)//函数定义,将某一行的字符读入到字符数组s中,并返回其字符长度
{
int i,c;
for(i