标题
寻找最长的行
类别
字符串
时间限制
1S
内存限制
1000Kb
问题描述
寻找若干行文本中最长的一行
输入说明
输入为多个字符串(每个字符串长度不超过100个字符),每个字符串占一行,输入的行为“***end***”时表示输入结束
输出说明
输出其中最长的一行长度后换行再输出最长行的内容,如果最长行不止一个,则输出其中的(!不是整个字符串数组的第一行)第一行。
输入样例
abce
abdf dlfd
***end***
输出样例
9
abdf dlfd
#include <stdio.h>
#include <string.h>
int main() {
char s[100]={0};
char maxline[100]={0};
char endline[]="***end***";//字符串是双引号
long long unsigned int maxlen=0;
int i=0;
while(1)//无限循环
{
gets(s);//换行帮助阻断gets
if(!strcmp(s,endline))//比较字符串只能用strcmp,不能用==、>、<
{
break;
}
if(strlen(s)>maxlen)
{
maxlen=strlen(s);
strcpy(maxline,s);//这个复制函数,会让被粘贴的数组在被粘贴之前清空
//不会粘到它的末尾。因为那样是strcat函数
}
}
printf("%lld\n%s",maxlen,maxline);//只含有一个字符串的字符数组直接用其名代表这串字符
//为什么是%lld?因为strlen函数的输出类型就是
//long long unsigned int,所以最好对应
return 0;
}