寻找一个字符串中最长的单词并输出
#include <stdio.h>#include <string.h>
static void prin_max(char str1[],char str2[]);
int main()
{
char flag='1';
char str1[100],str2[100];
while(flag=='1')
{
gets(str1);//一次输入一个单词
prin_max(str1,str2);
printf("\nDo you want to continue?Yes,print 1,No,print 0:");
flag=getchar();//通过询问是否要继续输入,决定输入的单词数量
printf("\n");
}
printf("%s",str2);
return 0;
}
static void prin_max(char str1[],char str2[])//将长度更长的单词放入str2中,并存储更长的单词的长度
{
int maxlen=0;
if(strlen(str1)>maxlen)
{
strcpy(str2,str1);
maxlen=strlen(str1);
}
}
编译没问题,但运行时有两个问题
1,我每次输入一个单词后,电脑询问Do you want to continue?Yes,print 1,No,print 0:,我按1,然后enter,电脑就直接接着询问Do you want to continue?Yes,print 1,No,print 0:,而没有让我输入str1的值,为什么会这样
2,然后我改变输入方法,电脑询问Do you want to continue?Yes,print 1,No,print 0:时,我按1再输入下一个单词,再按enter,结果输入正常。但系统总的运行结果并未输出最长单词,而是输出我最后输入的单词,我哪里错了吗