输入一个字符串(英文或空格),输出最长单词

#include
#include
int main()
{
int i=0,j;
char a[100][100],b[100],str[100];
char c;
gets(str);
for(j=0;(c=str[i])!='\0';j++)
{if(c==' ') i=i+1;
else
a[i][j]=c;
}
for(i=0;i<99;i++)
{
if(strlen(a[i])<=strlen(a[i+1]))
strcpy(b,a[i+1]);
}

printf("%s",b);


return 0 ;

}

if(strlen(a[i])<=strlen(a[i+1]))
这只是相邻两个字符串比较,你要和当前最长字符串比较才行啊

#include <stdio.h>
#include<string.h>
 
int main()
{
    int i=0,j,k=0;
    char a[100][100]={0},b[100]={0};
    char c,str[100]={0};
    gets(str);
    for(j=0;(c=str[i])!='\0';)
    {
        if(c==' ') 
        {
            k++;
            j=0;
        }
        else
        {
            a[k][j]=c;
            j++;
        }
        i++;
    }
    for(i=0;i<99;i++)
    {
        if(strlen(a[i])> strlen(b))
            strcpy(b,a[i]);
    }
 
    printf("%s",b);
 
    return 0 ;
}