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

#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;

}
请问这个问题在哪里啊(*꒦ິ⌓꒦ີ)


#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 ;
}
 
 

for(j=0;(c=str[i])!='\0';j++),循环变量是j,str里写i
if(c==' ') i=i+1;只要第一个字符里不是空格,i+1就不执行,你这是个标准死循环啊