从传入num个字符串中找出最长的一个字符串。(注意:用****作为结束输入的标志)

2024-12-25 13:28:13
推荐回答(4个)
回答1:

这个是我最近写的 统计传入字符串的单词长度的前5个
我把它改成只输出第一个 就是你要的了,里面只要把cout 和cin换成puts和gets就行了
#include "stdio.h"
#include "iostream.h"
#include "string.h"
struct world
{
char word[20];
int count;
}str[1000];
void sort(int n)
{

int i,j,m=0;
struct world temp;
for(i=0;i for(j=0;j if(strcmp(str[i].word,str[j].word)==0)
str[i].count++;
cout< for(i=0;i for(j=0;j if(str[j].count {
temp=str[j];
str[j]=str[j+1];
str[j+1]=temp;
}
cout< cout<cout<}
void main()
{
char ch;
int i=0,j=0,k;
for(ch=getchar();ch!='*';ch=getchar())
{
str[i].word[j]=ch;
j++;
if(ch==' ')
{
str[i].word[j]='\0';
i++;
j=0;
}
}
str[i].word[j]='\0';
for(k=0;k cout< sort(k);
}

回答2:

getLongestStr( char** strs)
{
int len=0;//保存最长
int len2=0;//临时
while(*strs)
len2=strlen(*strs);
if( len2 > len )len=len2;//如果比已知的还长,则重新保存最长
*strs++;//进行下一个字符串计算
}
return len;

回答3:

#include
#include
#define MAXNUM 100
#define MAXSTR 120
int main(){
char s[MAXNUM][MAXSTR];
int i,l,maxl,maxi;
i=1;
printf("str 1 :");
scanf("%s",s[0]);
if(l==4&&s[0][0]=='*'&&s[0][1]=='*'&&s[0][2]=='*'&&s[0][3]=='*')return 0;
maxl=strlen(s[0]);
maxi=0;
while(1){
printf("str %d :",i+1);
scanf("%s",s[i]);
l=strlen(s[i]);
if(l==4&&s[i][0]=='*'&&s[i][1]=='*'&&s[i][2]=='*'&&s[i][3]=='*')break;
if(l>maxl){
maxl=l;
maxi=i;
}
i++;
}
printf("\n\n\n\n最长字符串为:%s\n",s[maxi]);
return 0;
}

回答4:

加油 我也这题