程序出现错误
#include<stdio.h>#include<string.h>
int main()
{
char a[500],b[500],maxT[200],minT[200];
int i=0,f=0,j=0,len,max=-1,min=500;
gets(a);
while(a[i]!='\0')
{
if(a[i]==' ')
{
if(f==1)
{
b[j]='\0';
len=strlen(b);
if(len>max)
{
max=len;
strcpy(maxT,b);
}
if(len<min)
{
min=len;
strcpy(minT,b);
}
f=0;
j=0;
}
}
else
{
b[j]=a[i];
j++;
f=1;
}
i++;
}
b[j]='\0';
len=strlen(b);
if(len>max)
{
max=len;
strcpy(maxT,b);
}
if(len<min)
{
min=len;
strcpy(minT,b);
}
printf("%s\n%s\n",maxT,minT);
return 0;
}
这是寻找一行字符串中最长最短单词的程序,是可以成功运行的。但是我有一个问题,如果我不定义int型len,直接用strlen(b)带入进去,
b[j]='\0';
if(strlen(b)>max)
{
max=strlen(b);
strcpy(maxT,b);
}
if(strlen(b)<min)
{
min=strlen(b);
strcpy(minT,b);
}
程序运行结果就出错了,只会输出最短单词,而输出的最长单词是乱码的,请问这是什么原因呢?