编写程序,输入五个字符串,输出其中最长的字符串。要求使用指针数组实现。

 我来答
问明6E
高粉答主

2019-05-28 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:13万
展开全部

#include <stdio.h>

#include <string.h >

int main()

{

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",max);

return 0;

}

扩展资料:

scanf函数最主要的用法是:

scanf("输入控制符",输入参数);

功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。

用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。

如果想要输出包括空格在内的所有数据,可以使用gets()函数读入数据。gets()函数的功能是读取字符串,并存放在指定的字符数组中,遇到换行符或文件结束标志时结束读入。换行符不作为读取串的内容,读取的换行符被转换为字符串结束标志'\0'。

沧海雄风2009
推荐于2018-07-07 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2859万
展开全部
#include <stdio.h>
#include <string.h>
#include <malloc.h>
int main()
{
char *str[5];
int i,len=0,pos;
for (i=0;i<5;i++)
{
str[i] = malloc(sizeof(char)*50);
gets(str[i]);
if (strlen(str[i])>len)
{
len = strlen(str[i]);
pos = i;
}
}
printf("longest is str[%d]=[%s]\n",pos,str[pos]);

return 0;
}
12
34345
etet
4555
yyy
longest is str[1]=[34345]
Press any key to continue
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-23
展开全部
#include"stdio.h"
#include"string.h"
int main()
{
char *string[5],strings[5][100];
int i,n,max,temp=0;
printf("输入五个字符串:");
scanf("%s",strings[0]);
string[0]= &strings[0][100];
max=strlen(strings[0]);
for(i=1;i<5;i++){
scanf("%s",strings[i]);
string[i]= &strings[i][100];
n=strlen(strings[i]);
if(max<n){
max=n;
temp=i;
}
}
printf("输出最长字符串:%s\n",strings[temp]);
return 0;
}

BY-吴志远
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JulietLXy
2016-09-09
知道答主
回答量:4
采纳率:0%
帮助的人:4551
展开全部
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
int main(void)
{
char *str[5];
int size=sizeof(char);
int i,k,j;
str[0]=(char *)malloc(size);
printf("Input 5 strings:\n");
scanf("%s",str[0]);
for(i=1;i<5;i++){
str[i]=(char *)malloc(size);
scanf("%s",str[i]);
k=strlen(str[0]);
j=strlen(str[i]);
if(k<j)
str[0]=str[i];
}
printf("The lengthest string is:%s\n",str[0]);
return 0;
}
//应该没有打错字符吧(^_^) 这是我的答案的说
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-23
展开全部
……
char str[5];int i,j,l,k=0;
for(i=-1,i<5,i++){
l=scanf("%s",&str[i]);if(l>=k)j=i;}printf("%s",&str[j]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式