用一个函数来实现将一行字符串中最长的单词输出?初学者,自己编的程序,求大神看看哪里有问题。c++,不知道为什么头文件在这里显示不出来

图片说明图片说明图片说明

#include
#include
int main ( )
{
char a[100],*p;
int i;
printf("请输入一句英语");
gets(a);
int op(char b[100],char*m);
op(a,*p);
for(i=0;*(p+i)!='\0';i++)
printf("%c",*(p+i));
return 0;
}
int op(char b[100],char*v)
{
int i,m,n,j=0;
char c[100];
for(i=0;b[i]!='\n';i++)
{if(b[i]==' '||b[i]!=' ')
m=i;
else if(b[i-1]==' '&&b[i]!=' ')
m=i;
if(b[i+1]==' '&&b[i]!=' ')
n=i;
c[m]=n-m;
}
for(i=0;i<=99;i++)
{if(c[i]>j)
j=c[i];
}
for(i=0;i<-99;i++)
{if(c[i]==j)
m=j;
break;
}
n=m+j;
for(i=m;m<=i<=n;i++)
{*(v+i)=c[i];
}

#include
#include
int main ( )
{
char a[100],*p;
int i;
printf("请输入一句英语");
gets(a);
int op(char b[100],char*m);
op(a,*p);
for(i=0;*(p+i)!='\0';i++)
printf("%c",*(p+i));
return 0;
}
int op(char b[100],char*v)
{
int i,m,n,j=0;
char c[100];
for(i=0;b[i]!='\n';i++)
{if(b[i]==' '||b[i]!=' ')
m=i;
else if(b[i-1]==' '&&b[i]!=' ')
m=i;
if(b[i+1]==' '&&b[i]!=' ')
n=i;
c[m]=n-m;
}
for(i=0;i<=99;i++)
{if(c[i]>j)
j=c[i];
}
for(i=0;i<-99;i++)
{if(c[i]==j)
m=j;
break;
}
n=m+j;
for(i=m;m<=i<=n;i++)
{*(v+i)=c[i];
}

}

c++

1个回答

逻辑写得很麻烦,不够清晰,这样的题,逻辑很简单的,输入带有空格的字符串,非空格计数,添加字符,空格比较数大小保存大数的字符串,最后输出即可.
直接写未调试,输入部分就不写了
string a="aaa aa aaaa a aaaaa\n",b="",c="";
int aa=0,bb=0,cc=0;
while(a[aa]!='\n')if(a[aa]!=' ')b+=a[aa++],++bb;else if(bb>cc)c=b,b="",bb=0,++aa;if(bb>cc)c=b;cout<<c;
把之上程序写到函数内即可。
图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问