当前位置: 代码迷 >> C语言 >> [求助]求一函数代码
  详细解决方案

[求助]求一函数代码

热度:141   发布时间:2007-10-18 21:20:22.0
[求助]求一函数代码
写一函数,输入一行字符,将此字符串中最长的单词输出.
请高手们用c语言写,代码简单点,我是初学的,谢谢!
搜索更多相关的解决方案: 函数  代码  

----------------解决方案--------------------------------------------------------
以下代码VC6.0测试通过
程序代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char s[100],t[100];
char* p,*c,*tmp;
int l=0;
gets(s);
p=tmp=s;
while((c=strchr(tmp,' ')))
{
if(l<c-tmp)
{
l=c-tmp;
p=tmp;
}
tmp=c+1;
}
memcpy(t,p,l);
t[l]='\0';
puts(t);
return 0;
}

----------------解决方案--------------------------------------------------------
ls的只适合两个单词的情况,如果有多个单词呢?
----------------解决方案--------------------------------------------------------
谁说只适合两个单词的?你尽管输,不要超出99个字符就行
----------------解决方案--------------------------------------------------------
不好意思是我搞错了,但是程序还是有点小问题,就是在输入时,要用个空格结束,不然就会出错.
----------------解决方案--------------------------------------------------------
忘记考虑最长的在末尾的情况
程序代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char s[100],t[100];
char* p,*c,*tmp;
int l=0;
gets(s);
l=strlen(s);
s[l]=' ';
s[l+1]='\0';
p=tmp=s;
l=0;
while((c=strchr(tmp,' ')))
{
if(l<c-tmp)
{
l=c-tmp;
p=tmp;
}
tmp=c+1;
}
memcpy(t,p,l);
t[l]='\0';
puts(t);
return 0;
}


----------------解决方案--------------------------------------------------------

呵呵,OK了,谢谢永夜的极光!!


----------------解决方案--------------------------------------------------------
  相关解决方案