#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'。
#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
#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
temp=i;
}
}
printf("输出最长字符串:%s\n",strings[temp]);
return 0;
}
BY-吴志远
#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
}
printf("The lengthest string is:%s\n",str[0]);
return 0;
}
//应该没有打错字符吧(^_^) 这是我的答案的说
……
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]);