找最长的字符串(C语言)
本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。
输入格式:
输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。
输出格式:
在一行中用以下格式输出最长的字符串:
The longest is: 最长的字符串
如果字符串的长度相同,则输出先输入的字符串。
输入样例:
5
li
wang
zhang
jin
xiang
输出样例:
The longest is: zhang
code
#include <stdio.h>
#include <string.h>
#define SIZE 81
void input_char(char str[][SIZE],int n);
char *length_sort(char str[][SIZE],int n);
int main()
{
int n;
scanf("%d\n",&n);
char str[n][SIZE],*temp;
input_char(str,n);
temp = length_sort(str,n);
printf("The longest is: %s",temp);
return 0;
}
//二维数组输入
void input_char(char str[][SIZE],int n)
{
int cnt=0;
while(cnt<n&&gets(str[cnt])!=NULL&&str[cnt][0]!='\0')
{
cnt++;
}
}
//二维数组返回最先遍历的最长字符串的首地址
char *length_sort(char str[][SIZE],int n)
{
int max_length=strlen(str[0]);
char *temp;
temp=str[0];
for(int i=0;i<n;i++)
{
if(max_length<strlen(str[i]))
{
max_length=strlen(str[i]);
temp=str[i];
}
}
return temp;
}