题目描述
输入多个字符串,输出最长字符串。要求定义并使用函数maxLenStr(),
void maxLenStr(char *str[], int n, int *max)
{
从字符串数组str中找出最长的一个字符串,并将其下标存入形参指针max所指内存。
}
输入
输入有多行,每行一个字符串,每个字符串长度不超过80,输入最多不超过100行,用****作为结束输入的标志,该行输入不用处理。
输出
输出最长的一个字符串。
样例输入
L love C programming ACM/ICPC study hard ****
样例输出
L love C programming
问题分析:
先将最长的字符串默认为第一个,然后每经过一个字符串都让其长度与我们max记录的最长的字符串比较,如果其长于max记录下标的那个字符串则更新max使其记录现在最长的字符串。
代码实现:注意:虽然题目上说每个字符串的长度不超过80,但是当定义为81的时候提交会出错,将其改为100就行了
#include<stdio.h>
#include<string.h>
void maxLenStr(char str[][100],int n,int *max){
for(int i=0;i<n;i++){
if(i==0){
*max=0;
}else{
if(strlen(str[i])>strlen(str[*max])){
*max=i;
}
}
}
}
int main(){
char str[100][100];
int i=0,max;
while(gets(str[i]),strcmp(str[i],"****")!=0){
i++;
}
maxLenStr(str,i,&max);
printf("%s\n",str[max]);
return 0;
}
提交结果: