1170: 最长字符串(指针专题)

题目描述

输入多个字符串,输出最长字符串。要求定义并使用函数maxLenStr(),
void maxLenStr(char *str[], int n, int *max)
{
从字符串数组str中找出最长的一个字符串,并将其下标存入形参指针max所指内存。
}

输入

输入有多行,每行一个字符串,每个字符串长度不超过80,输入最多不超过100行,用****作为结束输入的标志,该行输入不用处理。

输出

输出最长的一个字符串。

样例输入 Copy

L love C programming
ACM/ICPC
study hard
****

样例输出 Copy

L love C programming
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
void maxLenStr(char *str[],int n,int *max);

int main(){
	char *str[101];//指针数组,即字符数组中每个元素均为指针 
	char s[101];
	int i;

	int max;
	
	gets(s);
	for(i=0; strcmp(s,"****")!=0; i++){
		str[i]=(char*)malloc(sizeof(char)*(strlen(s)+1));//为指针(地址)分配对应的内存 
		strcpy(str[i],s);
		gets(s);
	}
	
	maxLenStr(str,i,&max);//
	puts(str[max]);
	
	return 0;
} 
void maxLenStr(char *str[],int n,int *max){//
	*max = 0;
	int maxlen=0;

	for(int i=0;i<n; i++){//比较字符串长度大小 
		if(strlen(str[i]) > maxlen){
			*max=i;
			maxlen=strlen(str[i]);
		}
	}
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 17:37
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 17:10
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务