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

2024-11-08 21:44:09
推荐回答(5个)
回答(1):

#include

#include

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'。

回答(2):

#include 
#include 
#include 
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

回答(3):

#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 max=n;
temp=i;
}
}
printf("输出最长字符串:%s\n",strings[temp]);
return 0;
}

BY-吴志远

回答(4):

#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 str[0]=str[i];
}
printf("The lengthest string is:%s\n",str[0]);
return 0;
}
//应该没有打错字符吧(^_^) 这是我的答案的说

回答(5):

……
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]);