C语言:输入5个字符串,输出其中最长的字符串。若最长的字符串不止一个,则输出所有最长字符串。

输入5个字符串,输出其中最长的字符串。若最长的字符串不止一个,则输出所有最长字符串

代码:(字符串的输入不可像输入字符一样用空格分隔)

#include <stdio.h>
#include <string.h>
int main() {
    char s[5][100];
int  maxlen=0,i;

printf("请输入5个字符串:\n");
for(i=0;i<5;i++){
gets(s[i]);
if(maxlen<strlen(s[i])){
maxlen=strlen(s[i]);
}
}
    
printf("最长字符串:\n");
for(i=0;i<5;i++){
if(maxlen==strlen(s[i])){
printf("%s\n",s[i]);
}
}
    return 0;
}

运行:(随便输入)

只有一个的情况:

含有多个的情况:

极致情况:

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-12-25

参考代码如下:

#include<stdio.h>
#include<string.h>
int main()
{
char str[5][100];
int i,l[5],maxl=0;
for(i=0;i<5;++i)
scanf("%s",str[i]);
for(i=0;i<5;++i){
l[i]=strlen(str[i]);
if(maxl<l[i]) maxl=l[i];
}
for(i=0;i<5;++i)
if(maxl==l[i]) printf("%s\n",str[i]);
return 0;
}

追答

运行结果如下:

C语言找出最长的字符串。输入5个字符串,输入其中最长的字符串。
} printf("最大的字符串是:%s \\n",max);return 0;}

输入5个字符串,输出其中最长的字符串。
int i=0;char s[80]={""},max[80]={""};printf("输入五个字符串:\n");scanf("%s",s);strcpy(max,s);for(i=1;i<5;i++){ scanf("%s",s);if(strcmp(max,s)<0)strcpy(max,s);} printf("最长的字符串是:%s\n",m...

C语言输入五个字符串,找出最长的字符串,长度不够的在字符左边用*补齐后...
include<string.h> int main(){ char a[6][50],s[50];int max=0;for(int i=0;i<5;i++){ gets(a[i]);if(strlen(a[i])>max){ max=strlen(a[i]);\/\/记录最长字符串的长度;strcpy(s,a[i]);\/\/记录最长的字符串 } } printf("max=(%s)\\n",s);for(int i=0;i<5;i++...

输入5个字符串,输出其中最大的字符串。
strcpy(max,str)完成字符串拷贝,strcmp完成字符串比较,只要保留一个for循环,用一个strcmp就解决问题。strcmp(str1,str2):str1>str2时strcmp()>0,str1=str2时strcmp()=0,str1<str2时strcmp()<0 include <string.h> include <stdio.h> include <stdlib.h> int main(void){ char str[80]...

C语言中字符串的长度如何比较?例如:输入5个字符,输入其中最长的字
可以用strlen函数来求取字符串的长度,然后进行比较,得出最长的字符串,然后输出即可 示例代码如下:include<stdio.h> include<string.h> void main(){ char s[5][20];int a[5]; \/\/用于储存字符串长度的数组 int i,max;for(i=0;i<5;i++){ gets(s[i]); \/\/输入字符串 a[i]=...

用C语言任意输入5个数,求其中的最大值,并打印输出。
cout<<"输入五个整数";cin>>a>>b>>c;if(a>b){ if(c>a)cout<<"最大整数是:"<<c<<endl;else cout<<"最大整数是:"<<a<<endl;} if(b>a){ if(c>b)cout<<"最大整数是:"<<c<<endl;else cout<<"最大整数是:"<<b<<endl...

定义包含五个字符串的字符数组,键盘输入五个字符串,找出最大字符串并...
include <stdio.h> include <string.h> int main(){ char str[5][100];int i,n=0;printf("输入五个字符串:\\n");for(i=0;i<5;i++)gets(str[i]);for(i=1;i<5;i++){ if(strcmp(str[i],str[n])>0)n=i;} printf("最大字符串是:\\n%s\\n",str[n]) ;} ...

用C语言从键盘循环输入字符5个字符串
void main (){ char string[5];int i;char max,min,choice;for(i=0;i<5;i++){ scanf("%c",&string[i]);} max = string[0];for(i=1;i<5;i++)if(strcmp(max,string[i]<0){ choice = max;max = string[i];string[i] = choice;} printf("%c",max);\/\/最小的同理 ...

C语言要求通过键盘输入5字符串,再调用函数sort给字符串从小到大排列,再...
你可以用动态内存来写输入部分:(头文件添加malloc.h)include <stdio.h>#include <malloc.h>#define N 100\/\/每个字符串最大长度int main(){ int i; char *strs[5]; for(i=0;i<5;i++) { strs[i]=(char *)malloc(sizeof(char)*(N+1)); if(strs[i]) ...

输入5个字符串(中文或英文),找出其中的最大串(ASCII码值最大的,用str...
include "stdio.h"include "string.h"void main(void){ char a[5][20],b[20],i;printf("Type 5 strings...\\n");for(i=0;i<5;scanf("%s",(a[i++])));for(strcpy(b,a[0]),i=1;i<5;i++)if(strcmp(b,a[i])<0) strcpy(b,a[i]);printf("The max str is %s.\\n"...

相似回答