题目描述
从键盘上输入多个字符串(每个串不超过5个字符且没有空格),用”*****”作为串输入结束的标记。从所输入的若干字符串中,找出一个最大的串,并输出该串。要求最大串的查找通过调用编写的函数实现 void find(char *name[], int n, int *p) { //在包含n个字符串的二维字符数组name中,查找值最大的字符串,将其下标存入指针p所指内存单元 }
输入
一行输入一个字符串,输入多行
输出
输出一个字符串,单独占一行。
样例输入 Copy
代码语言:javascript复制zzzdf
fdsg
adff
rtrt
*****
样例输出 Copy
代码语言:javascript复制zzzdf
代码语言:javascript复制#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void find(char *name[], int n, int *p);
int main(){
char s[6];
int n=0,i;
char *str[100];//数组指针,其中[]的优先级比*高 ,
(从右往左读),若为char (*str)[100]则为指针数组
for(i=0; ; i ){
gets(s);
if(strcmp(s,"*****")==0){
break;
}
else{
n ;
str[i]=(char*)malloc(sizeof(char)*6);//使用前必须要分配内存
strcpy(str[i],s);
}
}
int a;
find(str,n,&a);
puts(str[a]);
return 0;
}
void find(char *name[], int n, int *p) {
char maxs[6];
strcpy(maxs,name[0]);
for(int i=1; i<n; i ){
if(strcmp(maxs,name[i])<0){
strcpy(maxs,name[i]);
*p=i;
}
}
}