问题描述
寻找若干行文本中最长的一行
输入说明
输入为多个字符串(每个字符串长度不超过100个字符),每个字符串占一行,输入的行为“***end***”时表示输入结束
输出说明
输出其中最长的一行长度后换行再输出最长行的内容,如果最长行不止一个,则输出其中的第一行。
输入样例
abce
abdf dlfd
***end***
输出样例
9
abdf dlfd
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
char a[110], b[110] ="***end***", c[110];
int temp = 0, k = 0, t = 0;
int main (){
do{
gets(a);
if(strlen(a)!=0)//避免连续两个换行符导致程序提前结束
if(memicmp(a,b,strlen(a)) != 0){//比较得出是否为结束行
t = strlen(a);
if(temp < t){
temp = t;
memcpy(c,a,strlen(a));//暂存当前最长行
}
}
else{
k = 1;
}
}while(k == 0);
cout << temp << endl;
cout << c;
return 0;
}