编写程序,输入五个字符串,输出其中最长的字符串。要求使用指针数组实现。
#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'。
#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"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-吴志远
#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]);